首先,我安装了 Selenium Server Standalone 3.9.1 , XAMPP 3.2.2 , php-webdriver 0.9.1 和< strong> 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
我试过:
什么都行不通!任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
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();
}