【发布时间】:2016-07-24 17:08:42
【问题描述】:
这是我的 python 脚本的代码 sn-p。我正在使用 PhantomJS 1.9.1 和 python 2.7。
def setUp(self):
self.driver = webdriver.PhantomJS()
self.driver.implicitly_wait(30)
self.base_url = "http://***"
self.verificationErrors = []
self.accept_next_alert = True
def test_one(self):
driver = self.driver
driver.get(self.base_url + "/"+datestring)
driver.execute_script('document.querySelector("span.zoom_link").click();')
targeturl = anchor_tag.get_attribute("src")
datestring =datestring.replace('/','_')
urllib.urlretrieve(targeturl, datestring+".jpg")
代码在我的 mac os 本地按预期运行,但是当我在 ec2 cent os 实例上部署相同的脚本时,它会抛出以下错误
Traceback (most recent call last):
File "one.py", line 28, in test_one
driver.execute_script('document.querySelector("span.zoom_link").click();')
File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 461, in execute_script
{'script': script, 'args':converted_args})['value']
File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 233, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
WebDriverException: Message: Error Message => ''undefined' is not a function (evaluating 'document.querySelector("span.zoom_link").click()')'
caused by Request => {"headers":{"Accept":"application/json","Accept-Encoding":"identity","Connection":"close","Content-Length":"130","Content-Type":"application/json;charset=UTF-8","Host":"127.0.0.1:39740","User-Agent":"Python-urllib/2.7"},"httpVersion":"1.1","method":"POST","post":"{\"sessionId\": \"fds\", \"args\": [], \"script\": \"document.querySelector(\\\"span.zoom_link\\\").click();\"}","url":"/execute","urlParsed":{"anchor":"","query":"","file":"execute","directory":"/","path":"/execute","relative":"/execute","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/execute","queryKey":{},"chunks":["execute"]},"urlOriginal":"/session/c1c222d0-1cb6-11e6-bd87-e5a4b311ba07/execute"}
【问题讨论】:
-
您是否在本地和远程机器上使用相同版本的
Selenium和PhantomJS? -
这是我的错误,我的 ec2 中的 PhantomJS 版本是 1.9.1,当我将其更改为 2.1.1 时,它可以正常工作。谢谢
标签: python selenium amazon-ec2 phantomjs