使用PHP Selenium 2 Webdriver存在Check元素?

con*_*234 5 php selenium webdriver selenium-webdriver

我试图通过CSS使用Selenium 2检查页面上是否存在元素.任何人都有使用PHP Selenium Webdriver Facebook包装器的任何示例?

我试过以下代码:

  if($driver->findElement(WebDriverBy::xpath("image-e4e")) != 0)
  {

                }
Run Code Online (Sandbox Code Playgroud)

但是给了我这个错误:

致命错误:未捕获异常'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)


dda*_*son 0

那是因为你的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还是名字我不知道。