con*_*234 5 php selenium webdriver selenium-webdriver
我试图通过CSS使用Selenium 2检查页面上是否存在元素.任何人都有使用PHP Selenium Webdriver Facebook包装器的任何示例?
我试过以下代码:
Run Code Online (Sandbox Code Playgroud)if($driver->findElement(WebDriverBy::xpath("image-e4e")) != 0) { }
但是给了我这个错误:
致命错误:未捕获异常'NoSuchElementWebDriverError',消息'无法找到元素:{"方法":""xpath","selector":"image-e4e"}
小智 12
按设计,findElement返回WebDriverElement(如果找到),但在找不到时会抛出异常.
要检查元素是否在页面上而没有异常,诀窍是使用findElements.findElements返回页面上找到的所有元素的数组.如果没有找到,它返回一个空数组.
if (count($driver->findElements(WebDriverBy::xpath("image-e4e"))) === 0) {
echo 'not found';
}
Run Code Online (Sandbox Code Playgroud)
那是因为你的xpath不好。
如果您想继续使用 xpath,那么您的选择器将是
//*[@id='image-e4e']
Run Code Online (Sandbox Code Playgroud)
如果您思想开放,请习惯 CSS 选择器。它们更快且更具可读性
WebDriverBy::cssSelector("#image-e4e")
Run Code Online (Sandbox Code Playgroud)
这当然是假设 ID 是image-e4e。您的 xpath 失败的原因是因为 xpath 试图找到具有标记 name 的直接子级image-e4e。您想要解析整个 pom 以查找属性等于 的元素image-e4e。是ID还是名字我不知道。
| 归档时间: |
|
| 查看次数: |
6676 次 |
| 最近记录: |