使用Selenium Webdiver。我的测试用例是。
点击通知链接时遇到问题,HTML代码如下: -
<ul class="rghtSec fr menu logged"><li><a href="javascript:;">
<div class="topIcon notify"><span> </span></div>
<div class="mTxt">Notifications<span id="rJobCntr" class="rJobCntr"></span></div></a>
<div class="subMenu recommendTT">
<ul>
<li><a target="_blank" class="blob" id="blobId" href="http://jobsearch.naukri.com/notifications">
Fetching jobs you may apply for</a></li>
</ul>
我尝试过以下五种不同的方式:
/*1*/ driver.findElement(By.xpath("//a[@class='mTxt']")).click();
/*2*/ driver.findElement(By.cssSelector("div[class='topIcon notify']")).click();
/*3*/ driver.findElement(By.linkText("Notifications")).click();
/*4*/ driver.findElement(By.xpath("//div[@class='pNotifyCont dspN']")).click();
/*5*/ Actions mouse=new Actions(driver);
WebElement element=driver.findElement(By.xpath("//div[@class='pNotifyCont dspN']"));
mouse.moveToElement(element).click().build().perform();
Error :
Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":"//a[@class='mTxt']"}
Command duration or timeout: 7.56 seconds
但这些方法都没有解决问题:(,有谁可以帮我解决这个问题?
答案 0 :(得分:0)
请将您的xpath
表达式替换为
driver.findElement(By.xpath("//div[contains(text(),'Notifications')]")).click();
Notifications
位于div
代码中。
如果要选择此Notifications
链接下的元素,可以按照xpath进行操作:
driver.findElement(By.xpath("//div[contains(text(),'Notifications')]/following::a[1]")).click();
答案 1 :(得分:0)
您可以根据href
属性值
driver.findElement(By.cssSelector("a[href*='notifications']")).click();
OR
driver.findElement(By.cssSelector("a[href=\"http://jobsearch.naukri.com/notifications\"]")).click();