使用Geckodriver 0.16更新到3.4.2后出现奇怪的错误

时间:2017-05-28 00:25:44

标签: python selenium geckodriver

Firefox更新到版本53,我用来阻止Ebay拍卖的Python脚本停止工作。起初它在这里抱怨:

driver.get('https://signin.ebay.com.au/ws/eBayISAPI.dll?SignIn&ru=http%3A%2F%2Fwww.ebay.com.au%2F')

time.sleep(10)

elements = driver.find_elements_by_class_name("fld")

elements[2].send_keys("your-username")

我发现geckodriver 0.15中的send_keys存在已知问题

我将Selenium更新为3.4.2,将gecko更新为0.16。上面的代码再次起作用。好极了!然而,它死了(嘘!):

itemidurl = "http://www.ebay.com.au/itm/" + sys.argv[1] + "?&autorefresh=true"

print itemidurl

driver.get(itemidurl)

确切地说是最后一行,.get。顺便说一句,您可以替换URL中的任何有效(活动)Ebay项目编号。它给我的错误是:

  

selenium.common.exceptions.WebDriverException:消息:到达错误页面:about:neterror?e = dnsNotFound& u = http%3A // pics /& c = UTF-8& f = regular& d = Firefox% 20can%E2%80%99吨%20find%第二十条%20server%20AT%20pics。

我不知道这意味着什么!奇怪的是它进入了有问题的页面,但脚本在那时就死了。是什么给了什么?

编辑:让我添加整个错误消息

Traceback (most recent call last):
File "C:/snipr/snipr.py", line 37, in <module>
driver.get(itemidurl)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", 
line 264, in get self.execute(Command.GET, {'url': url})
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", 
line 252, in execute self.error_handler.check_response(response)
File "C:\Python27\lib\site-
packages\selenium\webdriver\remote\errorhandler.py", line 194, in 
check_response raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Reached error page: 
about:neterror?e=dnsNotFound&u=http%3A//pics/&c=UTF-
8&f=regular&d=Firefox%20can%E2%80%99t%20find%20the%20server%20at%20pics.

似乎错误来自selenium本身,而不是我的代码。帮助!

编辑2:我已使用相同格式的多个易趣网址重现了该错误。您可以尝试使用此方法重现行为:http://www.ebay.com.au/itm/162528324648?&autorefresh=true

我可以通过在完全不同的网站上使用URL来解决错误,这当然会使其在下一步失败。我可以将.get包裹在try/except块中并忽略错误,但这并不能解释错误的来源!

0 个答案:

没有答案