【问题标题】:Selenium does't work on Firefox 57 on phpSelenium 在 php 上的 Firefox 57 上不起作用
【发布时间】:2018-02-13 10:02:55
【问题描述】:

首先我安装了 Selenium Server Standalone 3.9.1XAMPP 3.2.2php-webdriver 0.9.1 和 Firefox 57,我想从 selenium 文件夹的根目录运行 example.php 文件。这是代码:

require_once "phpwebdriver/WebDriver.php";

$webdriver = new WebDriver("localhost", "4444");
$webdriver->connect("firefox");
$webdriver->get("http://google.com");
$element = $webdriver->findElementBy(LocatorStrategy::name, "q");
if ($element) {
    $element->sendKeys(array("php webdriver" ) );
    $element->submit();
}

当我在 chrome 页面上运行此代码时,打开了 firefox,打开了 google.com 然后它停止了,它什么也没做。它应该在谷歌搜索栏中搜索 'php webdriver' 但它没有。我在运行此代码的 chrome 页面上收到下一条通知:

注意:未定义的属性:第 28 行 ...\WebDriver\phpwebdriver\WebElement.php 中的 stdClass::$ELEMENT

我已经尝试过:

  • 使用和不使用 firefox 版本运行代码
  • 使用另一个浏览器 (chrome) 运行代码,但出现另一个错误 (Undefined property: stdClass::$sessionId)
  • 已安装 selenium 服务器独立 3.4.0

没有任何作用!谁能帮我解决这个问题?

【问题讨论】:

    标签: php selenium testing selenium-webdriver


    【解决方案1】:

    sendKeys()方法的Java Docs定义方法如下:

    • sendKeys()

      void sendKeys(java.lang.CharSequence... keysToSend)
      Use this method to simulate typing into an element, which may set its value.
      
      Parameters:
      keysToSend - character sequence to send to the element
      
      Throws:
      java.lang.IllegalArgumentException - if keysToSend is null
      

    因此,一个快速的解决方案是按如下方式更改代码块:

    $element = $this->webdriver->findElement(WebDriverBy::name('q'));
    if ($element) {
        $element->sendKeys(array('php webdriver') );
        $element->submit();
    }
    

    【讨论】:

    • 还是不行!我更改了它,但现在在 webElement.php 中的 sendKeys() 方法中会抛出错误 if (!is_array($value)) {throw new Exception("$value must be an array");}。如果我评论这个 if 语句,我会收到同样的通知!
    • 查看我更新的答案并让我知道状态
    • 所以,首先我得到一个错误,我不能使用 $this 因为它不是一个对象,在我删除 $this 后我得到另一个错误,因为不存在 findElement() 方法,如果我改变它使用 findElementBy() 我得到没有类 WebDriverBy 的错误,如果我用 WebDriver 更改它,我得到的错误是类 WebDriver 中没有方法 name()。所以,还是不行!
    猜你喜欢
    • 2016-12-09
    • 1970-01-01
    • 2016-09-13
    • 2014-02-06
    • 2012-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多