我使用的是最新的webdriver
版本。下面是我编写的webdriver
代码
Thread.sleep(5000);
WebElement providerprofile = driver.findElement(By.xpath("//div[@class='provider-namebox']//a[@href='#provider-detail?anthony-firilas&U2FsdGVkX181p0qdh48AoV8B1OV7voTYsNsYgSWYsg0=&Ashley River Family Physicians@South Carolina@@@@@@@@@28.6667@77.2167&standardsearch']"));
providerprofile.click();
以下是HTML代码段
<div class="col-sm-12 inner-provider clearfix">
<a href="#provider-detail?anthony--firilas&U2FsdGVkX181p0qdh48AoV8B1OV7voTYsNsYgSWYsg0=&Ashley River Family Physicians@South Carolina@@@@@@@@@28.6667@77.2167&standardsearch">
<span class="col-xs-5 col-sm-12 image-box">
<img class="img-circle" alt="" src="images/provider-image.png"/>
</span>
</a>
<div class="col-xs-7 col-sm-12 mobile-showBox">
<div class="provider-namebox">
<a href="#provider-detail?anthony-firilas&U2FsdGVkX181p0qdh48AoV8B1OV7voTYsNsYgSWYsg0=&Ashley River Family Physicians@South Carolina@@@@@@@@@28.6667@77.2167&standardsearch">
<span class="nowrap">
<h2>Anthony </h2>
</span>
<span class="nowrap">
<h2>Firilas</h2>
, MD
</span>
</a>
<h3> N/A </h3>
</div>
现在当我运行上面的webdriver
代码时,它给出了错误
"Unable to locate element "
。
我用于上述HTML的Xpath://div[@class='provider-namebox']//a[@href='#provider-detail?anthony-firilas&U2FsdGVkX181p0qdh48AoV8B1OV7voTYsNsYgSWYsg0=&Ashley River Family Physicians@South Carolina@@@@@@@@@28.6667@77.2167&standardsearch']
即使使用相同的xpath,它也会在firebug和firepath中识别
答案 0 :(得分:0)
只需使用以下代码来识别元素。
WebElement providerprofile = driver.findElement(By.xpath("//div[@class='provider-namebox']/a"));
答案 1 :(得分:0)
由于错误是“无法定位元素”,因此元素可能未在指定的时间段内加载。此外,如果href是唯一的而不是“动态”,则只能搜索href。请尝试以下代码:
WebDriverWait wait = new WebDriverWait(_driver, 60);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//a[@href='#provider-detail?anthony-firilas&U2FsdGVkX181p0qdh48AoV8B1OV7voTYsNsYgSWYsg0=&Ashley River Family Physicians@South Carolina@@@@@@@@@28.6667@77.2167&standardsearch']")));
使用“wait”命令,测试将等待60秒,然后退出并出现错误。一旦元素被定位,它将立即继续。如果仍然收到相同的错误,则href可能不是唯一的。也许你可以尝试按类名...
答案 2 :(得分:-1)
问题是在我使用webdriver执行搜索选项后,webdriver无法找到它正在发生的元素,因为我的xpath不知道因为动态值即将到来而且它们的xpath与我的相同xpath所以我使用前向兄弟方法来识别要识别元素的特定元素。