将 Javascript 注入到 Selenium Python 中的 converted_args)['value']

2024-07-02 14:14:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将一些javascript代码注入到我的chromesellienium浏览器中。javascript包含一个只有一次有效的令牌,因此javascript只能执行一次。要注入我使用的javascript:

driver.execute_script(toinject)

其中toinject包含以下javascript:

^{pr2}$

它很长,但我很确定它是正确的,因为如果我使用javascript测试仪运行它,它就可以工作。之后的情况是,javascript似乎被执行了两次,使得令牌无效。我得到以下错误:

Exception in thread Thread-2:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/threading.py", line 864, in run
    self._target(*self._args, **self._kwargs)
  File "testin.py", line 74, in startbot
    openseission()
  File "testin.py", line 183, in openseission
    driver.execute_script(toinject)
  File "/Users/____/Desktop/going_headless/chaptcha/flask/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 546, in execute_script
    'args': converted_args})['value']
  File "/Users/____/Desktop/going_headless/chaptcha/flask/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 311, in execute
    self.error_handler.check_response(response)
  File "/Users/___/Desktop/going_headless/chaptcha/flask/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 237, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: call function result missing 'value'
  (Session info: chrome=65.0.3305.0)
  (Driver info: chromedriver=2.34.522932 (4140ab217e1ca1bec0c4b4d1b148f3761eb3a03e),platform=Mac OS X 10.12.6 x86_64)

我怎样才能避免这种情况?在过去的3个小时里,我没有发现任何人有同样的问题。我不介意用另一种方式注入javascript,但我不知道。提前谢谢你


Tags: inpyselfexecutelibseleniumlinescript
1条回答
网友
1楼 · 发布于 2024-07-02 14:14:12

你的追踪显示你正在使用Chrome65(你在beta频道吗?)带chromedriver 2.34。我不认为Chrome65可以用那个版本的chromedriver来驱动。你可能想把chrome降级(比如说,降到稳定版本,我相信目前是63)。在

相关问题 更多 >