Unable to find page elements with Behat / Mink using Selenium 3.5.x
我正在为我们当前的网站设置行为测试。我过去在 Selenium 独立服务器上使用过 Behat,现在已经更新到最新的 Behat 3 和 Selenium 3.5。我有很多问题。使用 Selenium 3.5 我根本无法让 xpath 选择器工作。它无法按 id、名称、类等查找元素。使用 Selenium 3.4.x 似乎可以正常工作,但我无法按下按钮工作。我收到此错误:
1 2 3 4 5 | Then I click button"loginBtn" # FeatureContext::iClickButton() mouseMoveTo Build info: version: '3.4.0', revision: 'unknown', time: 'unknown' System info: host: 'matt-VirtualBox', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-59-generic', java.version: '1.8.0_131' Driver info: driver.version: RemoteWebDriver (WebDriver\\Exception\\UnknownCommand) |
这似乎是在 3.5.x 中修复的问题,其中 enablePassThrough 设置为 true。这是我的 behat.yml 配置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | default: suites: default: contexts: - FeatureContext: screenshots_path: '%paths.base%/screenshots/firefox/' extensions: Behat\\MinkExtension: base_url: 'http://localhost:8080/customer_portal/' default_session: selenium2 browser_name: 'firefox' selenium2: browser: 'firefox' capabilities: browserName: 'firefox' browser: 'firefox' version: '' wd_host: 'localhost:5555/wd/hub' |
在我的 composer.json 文件中
1 2 3 4 5 6 7 8 9 10 11 12 | { "require": { "behat/behat":"3.*@stable", "behat/mink":"1.7.*@stable", "behat/mink-selenium2-driver":"@stable", "behat/mink-goutte-driver":"@stable", "behat/mink-extension":"@stable", "phpmd/phpmd" :"@stable" }, "config": { "bin-dir":"bin/" } |
}
我正在使用 Firefox 55 和 geckodriver v18。有没有人成功配置 selenium 以使用 Behat 3 和 Firefox?
mouseMoveTo 错误是使用 selenium3 时众所周知的问题。此错误仅发生在带有 gecko 驱动程序的 firefox 浏览器上。要解决此问题,您可以使用 chrome 或更新 MinkSelenium2Driver 库。应该是 MinkSelenium2Driver 的主分支,它需要 behat/mink:~1.7@dev。这是问题的关键 MinkSelenium2Driver 所以如果你可以使用所有最新的 behat 版本,那么 composer.json 可能看起来像这样:
1 2 3 4 5 6 | "require": { "behat/behat":"v3.3.1", "behat/mink":"v1.7.1", "behat/mink-extension":"v2.2", "behat/mink-selenium2-driver":"dev-master", } |
这似乎是 Selenium 的一个问题。我在使用 FF 时也遇到了问题,无法点击元素。