python - 单击时的 Webdriver WebDriverException/TimeoutException

标签 python exception selenium click webdriver

我正在使用 webdriver 单击 iframe 中表单上的提交按钮。基本上:

self.driver.find_element_by_css_selector("[name~='field_1']").clear()
self.driver.find_element_by_css_selector("[name~='field_1']").send_keys("123")
self.driver.find_element_by_css_selector("[name~='field_1']").send_keys(Keys.RETURN)
self.driver.switch_to_window(self.driver.window_handles[-1])
self.assertEqual(self.driver.current_url, "http://fake_address.com")

我也尝试过:

self.driver.find_element_by_css_selector("[name~='field_1']").clear()
self.driver.find_element_by_css_selector("[name~='field_1']").send_keys("123")
self.driver.find_element_by_css_selector("#submit-endslide").click()
self.driver.switch_to_window(self.driver.window_handles[-1])
self.assertEqual(self.driver.current_url, "http://fake_address.com")

和:

self.driver.find_element_by_css_selector("[name~='field_1']").clear()
self.driver.find_element_by_css_selector("[name~='field_1']").send_keys("123")
self.driver.find_element_by_css_selector("#submit-endslide").submit()
self.driver.switch_to_window(self.driver.window_handles[-1])
self.assertEqual(self.driver.current_url, "http://fake_address.com")

我得到了:

Traceback (most recent call last):
  File "test_ytplayer_smoke_form.py", line 198, in testSmallFormSubmission
    self.driver.find_element_by_css_selector("[name~='field_1']").send_keys(Keys.RETURN)
  File "/home/giant/our_player/lib/python2.7/site-packages/selenium/webdriver/remote/webelement.py", line 293, in send_keys
    self._execute(Command.SEND_KEYS_TO_ELEMENT, {'value': typing})
  File "/home/giant/our_player/lib/python2.7/site-packages/selenium/webdriver/remote/webelement.py", line 370, in _execute
    return self._parent.execute(command, params)
  File "/home/giant/our_player/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 166, in execute
    self.error_handler.check_response(response)
  File "/home/giant/our_player/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 164, in check_response
    raise exception_class(message, screen, stacktrace)
TimeoutException: Message: u'Selenium took too long to run your command.

然后 WebDriverException:消息:u'由于之前的错误,此作业已完成。

无论我选择哪种方法,点击提交按钮时总会出现超时; (我已经尝试将超时增加到 300)

注意:当我观看测试运行时,正在单击提交按钮并打开一个新选项卡,但由于异常,测试永远不会通过。

最佳答案

似乎是 Chrome V28 浏览器特定问题导致了此问题;我更新到最新的浏览器版本 Chrome V35,这个问题似乎已解决

关于python - 单击时的 Webdriver WebDriverException/TimeoutException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23793604/

相关文章:

python - 使用欧氏距离显示图像

java - 无法在 Safari 13.0.4 中使用 Selenium 单击元素

java - 选项卡中的 TestNG 并行 DataProvider

java - 所需库的存档 : 'lib/Chrome/chromedriver' in project 'XYZ' cannot be read or is not a valid ZIP file using ChromeDriver Selenium Java

python - 在 Python 中将类名分配给类变量

python - 删除点列表中相似点的最佳方法

java - 我知道为什么运行时异常不需要 try - catch 或 throws 但我想知道它是如何设计成不需要它们的?

python - 如何检查变量是否存在?

exception - 非 bool 型接收者——求真

python - 在 matplotlib 中,我可以将标签设置到图的底部,但将刻度线设置为零吗?