【问题标题】:How do make sure that a property is defined and a method is defined如何确保定义了属性并定义了方法
【发布时间】:2017-11-26 15:46:44
【问题描述】:

我目前正在尝试使用 facebook webdriver 编写测试。我正在尝试使用 selectByValue,但出现错误“PHP 致命错误:调用未定义的方法 RemoteWebElement::selectByValue()”

这是当前的 sn-p

 $selectClickButtonfirst = $this
     ->webDriver
     ->findElement(WebDriverBy::id('resultsPerPage'));
 $selectOptions = $selectClickButtonfirst->findElement(
     WebDriverBy::tagName('option')
 );
 $selectOptions->selectByValue('5')->click();

【问题讨论】:

    标签: facebook selenium webdriver phpunit selenium-chromedriver


    【解决方案1】:

    这是因为findElement()方法返回的WebDriverElement没有这样的能力。

    如果你想使用selectByValue<select> 中选择一个<option>,你必须构造一个WebDriverSelect 传递WebDriverElement 的目标实例作为参数。您可以在测试文件中看到constructionusage

    我相信最终代码应该看起来像:

    $selectClickButtonfirst = $this->webDriver->findElement(WebDriverBy::id('resultsPerPage'));
    $select = new WebDriverSelect($selectClickButtonFirst); // assuming previous returns <select>
    $select->selectByValue('5');
    

    【讨论】:

    • 非常感谢!有效。我真的很感谢你的解释。 “那是因为 findElement() 方法返回的 WebDriverElement 没有这样的能力。”
    猜你喜欢
    • 1970-01-01
    • 2012-01-25
    • 2014-09-03
    • 2015-08-06
    • 2023-03-29
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多