我正在尝试使用Selenium 2通过CSS检查页面上的元素是否存在。有人有使用PHP Selenium Webdriver Facebook Package 器的例子吗?
我尝试了下面的代码:
if($driver->findElement(WebDriverBy::xpath("image-e4e")) != 0)
{
}
字符串
但给了我这个错误:
致命错误:未捕获的异常“NoSuchElementWebDriverError”,消息为“无法定位元素:{“method”:“xpath”,“selector”:“image-e4e”}
6条答案
按热度按时间qmb5sa221#
按照设计,
findElement
在找到WebDriverElement时返回WebDriverElement,但在找不到时抛出异常。要检查元素是否在页面上而不出现异常,诀窍是使用
findElements
。findElements
返回页面上所有元素的数组。如果没有找到任何东西,则返回一个空数组。字符串
o2gm4chl2#
用途:
$driver->findElements
代替findElement
如果元素不存在,findElements将返回一个空数组,并且不会抛出异常。
ljo96ir53#
你也可以在PHP中使用
sizeof()
内置函数:字符串
OR也可以用来实现
count()
函数:型
**输出:**如果页面上有XPath元素,则给予成功
如果你想使用
findElement
:型
或
型
**输出:**如果页面上有XPath元素,则给予成功
注意:
findElement
方法在页面上没有元素时抛出 NoSuchElementException 异常。而findElements
方法在元素不可用或不存在于页面上时返回一个空列表。bttbmeg04#
那是因为你的xpath不好。
如果您想继续使用xpath,那么您的选择器应该是
字符串
如果你有一个开放的心态,习惯CSS选择器。faster and much more readable
型
当然,这是假设ID是
image-e4e
。xpath失败的原因是xpath试图定位标记名为image-e4e
的immedate子进程。你想要解析整个pom,寻找一个属性等于image-e4e
的元素。是身份证还是名字我不知道。i7uaboj45#
字符串
58wvjzkj6#
字符串
试试上面的逻辑,我相信一定会成功的。