如何找到此<a> element with Selenium?

时间:2018-04-05 23:12:28

标签: java selenium-webdriver xpath

There is a button “Apply Now” on http://yearup.org

<a href="https://www.yearup.org/seize-opportunity/" class="button">Apply Now</a>

到目前为止,我试过了:

//*[@class='button']") (but there are 11 occurrences. Using [0] doesn't help
//*[@class='button']//*[text()='Apply Now']
"html/body/div/section[2]/header/section/ul/li/ul/div[2]/a"
.findElement(By.linkText("Apply Now"));

他们都不适合我。

获得以下错误:

org.openqa.selenium.ElementNotInteractableException: Cannot click on element

3 个答案:

答案 0 :(得分:2)

是什么让它有点难,是同一页面中相同标签的重复。 有两种解决方案:

//div[@class='large-9 columns large-centered center-absolute']/a[@class='button' and contains(text(),'Apply Now')]

(//a[contains(text(),'Apply Now')])[2]

答案 1 :(得分:2)

这将有效:

driver.findElement(By.xpath(".//*[@href='http://www.yearup.org/seize-opportunity/']")).click();

如果您只是想找到它而不是单击该元素,请使用:

driver.findElement(By.xpath(".//*[@href='http://www.yearup.org/seize-opportunity/']"));

此外,如果您正试图前往该页面并且您不需要实际点击要在那里旅行的元素,请执行以下操作:

driver.get("http://www.yearup.org/seize-opportunity/");

答案 2 :(得分:1)

我知道在HTML中它显示为“立即应用”但是如果你使用

driver.findElement(By.linkText("APPLY NOW")).click();

它有效。我刚试过它。