我需要点击位于<div><ul><li>
标签中的按钮。
我需要单击类别为class="icon-link exp-icon-magnify"
<div class="navbar navbar-blue">
<ul class="nav navbar-nav ">
<li class="disabled">
<a title="Wachten op Melding" href="#" class="icon-link exp-icon-bell"
data-toggle="tooltip" data-placement="left">
</a>
</li
<li class="divider"></li>
<li> <a title="Voer zoekactie uit"
href="/collections/toolbar/Search.mvc" class="icon-link exp-icon-
magnify" data-toggle="tooltip" data-placement="left">
</a>
</li>
试图通过xpath和cssSelector定位它们,但是它们没有起作用。 有人可以帮我吗?
答案 0 :(得分:0)
css选择器将是:
a[title='Voer zoekactie uit'][href*='Search.mvc'][class*='magnify']
尝试在代码中添加显式等待以提高稳定性。
WebDriverWait wait = new WebDriverWait(driver,10);
WebElement button = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("a[title='Voer Zoekactie uit'][href*='Search.mvc'][class*='magnify']")));
button.click();
答案 1 :(得分:0)
使用WebdriverWait
和elementToBeClickable
以及以下xpath单击元素。
WebDriverWait wait=new WebDriverWait(driver,40);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='navbar navbar-blue']//ul[contains(@class,'nav navbar-nav')]//li//a[@class='icon-link exp-icon-bell'][@title='Wachten op Melding']"))).click();
如果您想使用cssselector,请尝试一下。
WebDriverWait wait=new WebDriverWait(driver,40);
wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("div.navbar.navbar-blue ul.nav.navbar-nav li.disabled a.icon-link.exp-icon-bell[title='Wachten op Melding']"))).click();
首先切换到iframe
,然后使用上面的代码访问元素。
driver.switchTo().frame("ifrUserTools");
答案 2 :(得分:0)
这是CSS。
a.icon-link.exp-icon-.magnify
如果要在下面包括层次结构检查。
div.navbar.navbar-blue ul a.icon-link.exp-icon-.magnify
答案 3 :(得分:0)
完美帮助大家!
这是可行的:
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(“ ifrUserTools”)); wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector(“ [href * ='Search.mvc'] [class * ='magnify']”)))); WebElement searchButton = driver.findElement(By.cssSelector(“ [href * ='Search.mvc'] [class * ='magnify']”))); searchButton.click();
答案 4 :(得分:0)
您可以找到这样的元素
By.xpath(""//ul[@class='navbar-nav'//li[3]]");
请尝试使用上面的代码,让我知道