为什么 SafariDriver 不能点击特定元素,而 Chrome、FF、Edge 可以?
Why can't SafariDriver click on a specific element when Chrome, FF, Edge can?
在 MAC 上 运行ning Safari UI 测试时我遇到了麻烦。我有一个元素:
wd.find_element_by_xpath("//div[@id='ZoomBundle_people_search__searchTab-innerCt']//fieldset//span[text()='Company Information']")
它 collapses/uncollapses 一个带有过滤器的隐藏块。
当我在 Chrome、FF 或 Edge 中执行 click() 操作时,执行此操作。但是当我 运行 Safari 的相同代码时,我得到了异常:
selenium.common.exceptions.ElementNotInteractableException: Message:
C:\python\lib\site-packages\selenium\webdriver\remote\errorhandler.py:242: ElementNotInteractableException
我尝试添加WebDriverWait,结果还是一样。它可以看到元素,但不能与之交互。
这是 SafariDriver 的问题。
得到尝试通过 JS 点击的建议:
wd.execute_script("arguments[0].click();", elem)
改为
elem.click()
现在一切正常 (=
如果不想执行javascript,请尝试如下实际模拟按下键盘回车键。
以下示例对应Python代码
from selenium.webdriver.common.keys import Keys
driver = webdriver.Safari()
element = driver.find_element_by_xpath("//div[@id='ZoomBundle_people_search__searchTab-innerCt']//fieldset//span[text()='Company Information']")
element.send_keys(Keys.RETURN)
P.S:我仍然想知道,如果它是 SafariDriver 的问题,那么为什么 Apple 还没有调查它或者是由于其他原因。在我继续寻找答案的同时,你可以试试上面的方法。
如果您认为这是 safaridriver 中的错误,请在 https://feedbackassistant.apple.com/ 提交错误报告以及测试用例和测试脚本。此行为已明确指定,因此实现之间的任何差异都可能是错误。
在 MAC 上 运行ning Safari UI 测试时我遇到了麻烦。我有一个元素:
wd.find_element_by_xpath("//div[@id='ZoomBundle_people_search__searchTab-innerCt']//fieldset//span[text()='Company Information']")
selenium.common.exceptions.ElementNotInteractableException: Message:
C:\python\lib\site-packages\selenium\webdriver\remote\errorhandler.py:242: ElementNotInteractableException
我尝试添加WebDriverWait,结果还是一样。它可以看到元素,但不能与之交互。
这是 SafariDriver 的问题。 得到尝试通过 JS 点击的建议:
wd.execute_script("arguments[0].click();", elem)
改为
elem.click()
现在一切正常 (=
如果不想执行javascript,请尝试如下实际模拟按下键盘回车键。
以下示例对应Python代码
from selenium.webdriver.common.keys import Keys
driver = webdriver.Safari()
element = driver.find_element_by_xpath("//div[@id='ZoomBundle_people_search__searchTab-innerCt']//fieldset//span[text()='Company Information']")
element.send_keys(Keys.RETURN)
P.S:我仍然想知道,如果它是 SafariDriver 的问题,那么为什么 Apple 还没有调查它或者是由于其他原因。在我继续寻找答案的同时,你可以试试上面的方法。
如果您认为这是 safaridriver 中的错误,请在 https://feedbackassistant.apple.com/ 提交错误报告以及测试用例和测试脚本。此行为已明确指定,因此实现之间的任何差异都可能是错误。