为什么 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/ 提交错误报告以及测试用例和测试脚本。此行为已明确指定,因此实现之间的任何差异都可能是错误。