使用Selenium 3.5.x无法使用Behat / Mink查找页面元素

时间:2017-09-15 20:15:06

标签: selenium xpath behat mink

我正在为我们当前的网站设置行为测试。我以前在Selenium独立服务器上使用过Behat,现在已经更新到最新的Behat 3和Selenium 3.5。我有很多问题。使用Selenium 3.5我无法让xpath选择器工作。它无法通过id,name,class等找到元素。使用Selenium 3.4.x它似乎工作正常,但我无法按下按钮工作。我收到此错误:

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配置。

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文件中

{
"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一起使用?

2 个答案:

答案 0 :(得分:1)

这似乎是Selenium的一个问题。使用FF时我也遇到了问题,无法点击元素。

答案 1 :(得分:1)

使用selenium3时,mouseMoveTo错误是众所周知的问题。此错误仅发生在具有gecko驱动程序的firefox浏览器中。要解决此问题,您可以使用chrome或更新MinkSelenium2Driver库。应该是MinkSelenium2Driver的主分支,需要behat / mink:~1.7@dev。以下是问题的重点MinkSelenium2Driver所以如果你可以使用所有最新的behat版本,那么composer.json可能看起来像这样:

"require": {
    "behat/behat": "v3.3.1",
    "behat/mink": "v1.7.1",
    "behat/mink-extension": "v2.2",
    "behat/mink-selenium2-driver": "dev-master",
}