硒没有';不能在php上使用Firefox57

硒没有';不能在php上使用Firefox57,php,selenium,testing,selenium-webdriver,Php,Selenium,Testing,Selenium Webdriver,首先,我安装了Selenium Server Standalone 3.9.1、XAMPP 3.2.2、php webdriver 0.9.1和Firefox 57,我想从Selenium文件夹的根目录运行example.php文件。代码如下: require_once "phpwebdriver/WebDriver.php"; $webdriver = new WebDriver("localhost", "4444"); $webdriver->connect("firefox");

首先,我安装了Selenium Server Standalone 3.9.1XAMPP 3.2.2php webdriver 0.9.1Firefox 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版本和不使用firefox版本运行代码
  • 使用另一个浏览器(chrome)运行代码,但我遇到另一个错误(未定义的属性:stdClass::$sessionId
  • 已安装selenium server standalone 3.4.0
什么都不管用!有人能帮我解决这个问题吗?

方法的Java文档对方法的定义如下:

  • 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 on sendKeys()中,如果(!is_array($value)){throw new Exception($value必须是数组”);},则方法会抛出一个错误。如果我评论这个if声明,我也会收到同样的通知!签出更新的答案并让我知道状态因此,首先我得到一个错误,我不能使用$this,因为它不是一个对象;删除$this后,我得到另一个错误,因为不存在findElement()方法,如果我用findElementBy()更改它我得到的错误是没有WebDriverBy类,如果我用WebDriver更改它,我得到的错误是WebDriver类中没有方法名()。所以,它还是不起作用!