【问题标题】:Selenium 3.0.1 with safaridriver failing on waitForElementVisible()Selenium 3.0.1 with safaridriver 在 waitForElementVisible() 上失败
【发布时间】:2016-11-16 15:01:32
【问题描述】:

Safari 10.0.1 macOS 塞拉利昂

运行 Codeception 命令时:

$I->waitForElementVisible(['css' => 'input[type=text][id=UserUsername]'], 30);

在 Safari 的 Selenium 3.0.1 验收测试中,我收到一个错误。失败时截取的屏幕截图清楚地显示了有问题的元素。相同的测试/命令在 Firefox 和 Chrome 中都是成功的。错误:

Screenshot saved to /Applications/MAMP/htdocs/AutomatedTests/tests/_output/debug/FAILED1479307207.png
  Unable to retrieve Selenium logs : The command 'GET /session/9BC56414-8934-4315-9293-B6E99720E318/log/types' is not implemented.
  Command duration or timeout: 3 milliseconds
  Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:48:19 -0700'
  System info: host: 'Cosettes-MacBook-Pro.local', ip: '10.0.1.75', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.1', java.version: '1.8.0_101'
  Driver info: org.openqa.selenium.safari.SafariDriver
  Capabilities [{applicationCacheEnabled=true, rotatable=false, databaseEnabled=true, handlesAlerts=true, version=12602.2.14.0.5, cleanSession=true, platform=MAC, nativeEvents=true, locationContextEnabled=false, webStorageEnabled=true, browserName=safari, javascriptEnabled=true, cssSelectorsEnabled=true}]
  Session ID: 9BC56414-8934-4315-9293-B6E99720E318
  Screenshot and page source were saved into '/Applications/MAMP/htdocs/AutomatedTests/tests/_output/' dir
 ERROR 

当我在 Safari/Firefox/Chrome 中使用 Selenium 2.53.1 运行相同的测试/命令时,它发现元素没有问题。

我在浏览论坛时没有发现这种类型的定位器是否存在已知问题?有人对如何使这项工作有建议吗?

2016 年 1 月 12 日更新:现在这似乎是 waitForElementVisible() 命令的问题,而不是定位器。如果我将命令更改为$I->waitForElement(['css' => 'input[type=text][id=UserUsername]'], 30);,则测试成功前进,直到下一个 waitForElementVisible() 命令。

【问题讨论】:

  • 不完全相同的问题,但它可能对您有所帮助。 github.com/SeleniumHQ/selenium/issues/2680
  • 谢谢,但我不这么认为。我已通读该问题/修复。描述的问题是无法与 safariDriver 连接。我已经过了那个阶段。
  • @CosetteN 你找到解决方案了吗?我也有同样的问题。
  • 我没有,但很高兴知道我不是唯一一个为此苦苦挣扎的人。
  • 该死的。一切正常(IE、Edge、Chrome、Firefox)只有 Safari 不工作。它只打开页面然后 - 什么都没有。我将尝试等待而不是现在可见的元素。

标签: selenium selenium-webdriver safari codeception safaridriver


【解决方案1】:

People say 可见性检查在 Safari 10 的发布版本中被破坏。您可以尝试Safari Technology Preview,如果您的问题仍然存在,我们可以断定这是其他问题,而不是可见性检查失败。如果您的问题消失了,那将不完全是您的用户体验,但总比没有好。您也可以尝试使用浏览器端的一些脚本来实施自己的可见性检查作为解决方法(例如,this function 看起来足够好)。

要在 Safari Technology Preview 中运行测试,请添加

'safari.options': { technologyPreview: true }

能力。

有关此主题,另请参阅 my other answer

【讨论】:

  • 由于我们在当前的 Safari 和 Chrome 上使用旧版本的 Selenium Webdriver 取得了成功,我们将坚持使用它,直到 Safari 一起行动。
  • 我是否理解正确,对于 Safari 10,您使用的是作为 Safari 扩展实现的旧 Web 驱动程序,它工作正常吗?你使用什么版本的 Selenium Server?
  • 是的。我们一直在 2.53.1 进行日常测试,而我尝试并尝试将我们带到 3.0.1 并让它在 Firefox、Chrome 和 Safari 上运行。当前设置已将 Firefox 保留在 47.0.1 版本,但我们的 Safari 用户比 Firefox 多,因此我们优先考虑 Safari。
猜你喜欢
  • 2013-10-15
  • 2014-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-11
  • 1970-01-01
  • 2012-04-27
相关资源
最近更新 更多