我是selenium的新手。我想在2分钟后重新加载相同的网页。 我尝试过以下代码,但它不起作用: -
for($i = 0; $i < 7; $i++)
{
$this->webDriver->get($this->url);
$this->webDriver->findElement(WebDriverBy::xpath('/html /body/div[1]/div/div[4]/button/svg/path[1]'))->click();
// $this->webDriver->quit();
// echo $this->webDriver->getTitle() . "\n";
//$this->webDriver->navigate()->back();
}
答案 0 :(得分:1)
根据您共享的代码块,循环不会完成,因为以下行将引发异常:
$this->webDriver->findElement(WebDriverBy::xpath('/html /body/div[1]/div/div[4]/button/svg/path[1]'))->click();
那是因为, webDriver 无法通过您采用的定位器策略找到 webelement 并可能抛出NoSuchElement
<svg>
元素来自不同的svg命名空间。
您必须获取定位器策略的帮助才能构建正确的定位器以识别和检测<svg>
元素,然后尝试调用{{1方法就可以了。
您可以在此处找到有关Selenium WebDriver [Java]: How to Click on elements within an SVG using XPath
的详细讨论