我有一个url,它有一个重定向链,最多3个,也就是说,它指向另一个url,然后再指向另一个,直到它发生三次。在
我想在最后一页开始加载后立即关闭浏览器。我知道当域更改为某个特定的url时,我的url已经到达。我试图通过使用driver.current_url
和线程化来实现这一点。在
我将线程类实现为:
class driverThread (threading.Thread):
def __init__(self, threadID, driver):
threading.Thread.__init__(self)
self.threadID = threadID
self.driver = driver;
def run(self):
print "Initiated thread: " + str(self.threadID);
while True:
#Here is the problem
lk=str(self.driver.current_url);
try:
if lk.find('myhostname.com',lk.index('://')+2,lk.index('/',lk.index('://')+4))>=0:
sleep(1);
else:
#quits the driver once the link has successfully redirected to destination url
print "VISITED";
self.driver.quit();
break;
except ValueError:
sleep(1);
pass;
呼叫相同于:
^{pr2}$问题出在lk=str(self.driver.current_url)
行。当我运行这个脚本时,我遇到了一个声明CannotSendRequest
的错误,我知道这是由于http lib的问题造成的。根据我的说法,这是因为我的线程一直在检查driver.current_url
,当调用driver.get(link)
时,它会更新。get函数一被调用,线程就会出现错误CannotSendRequest
,这主要是因为它现在正在获取链接。在
目前没有回答
相关问题 更多 >
编程相关推荐