我是自动化世界的新手,并致力于自动化BBC网站。我有链接的数量以及该链接中的文本。 。我想点击带有文字"辅助功能帮助"的特定链接。请告诉我该怎么做。以下是我的代码:
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class BBC_AllLinks {
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
WebDriver driver = new FirefoxDriver();
driver.get("http://www.bbc.com");
List<WebElement> allLinks = driver.findElements(By.tagName("a"));
//Total number of links in the webpage
System.out.println("Total Links--> "+allLinks.size());
//35th index
Thread.sleep(4000);
for (int i =0; i<=allLinks.size();i++)
System.out.println(allLinks.get(i).getText()+"----"+allLinks.get(i).isDisplayed());
}
}
答案 0 :(得分:0)
您可以使用Xpath直接点击具有特定文本内容的链接,如下所示(未经测试的代码):
driver.findElement(By.xpath("//a[contains(text(), \"Accessibility Help\")]")).click();
请注意,如果此文本有多个链接,它将尝试单击第一个满足文档顺序的条件。通常,如果可能的话,最好使用id或唯一的CSS选择器来标识元素。
您还可以循环遍历您手动拥有的网络元素列表,并检查内部文本(通过getText()之类的内容)并单击您自己。
答案 1 :(得分:0)
我对你的代码应该做的事感到困惑。您是否尝试记录页面上的所有链接,然后然后点击链接?或者您只是想点击链接?
如果您要做的只是点击那一个链接,那么这就是您所需要的。
driver.findElement(By.linkText("Accessibility Help")).click();