【问题标题】:How to click on specific link after extracting all the links from a web page in selenium webdriver在 selenium webdriver 中从网页中提取所有链接后如何单击特定链接
【发布时间】:2015-10-21 22:08:17
【问题描述】:

我是自动化世界的新手,正在致力于自动化 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());
    }

}

【问题讨论】:

  • 请更清楚地添加您想要做什么?

标签: java selenium


【解决方案1】:

您可以使用 Xpath 直接单击带有特定文本内容的链接,如下所示(未经测试的代码):

driver.findElement(By.xpath("//a[contains(text(), \"Accessibility Help\")]")).click();

请注意,如果此文本有多个链接,它将尝试单击满足文档顺序条件的第一个链接。一般来说,如果可能的话,最好用 id 或唯一的 CSS 选择器来标识元素。

您还可以手动遍历您拥有的网络元素列表并检查其中的文本(通过getText() 之类的内容)并单击自己。

【讨论】:

  • 感谢 Azure,我知道了。
【解决方案2】:

我对您的代码应该做什么感到困惑。您是否尝试记录页面上的所有链接并然后单击该链接?还是您只是想点击链接?

如果您只想点击那个链接,那么这就是您所需要的。

driver.findElement(By.linkText("Accessibility Help")).click();

【讨论】:

  • 是的杰夫,我正在尝试记录页面上的所有链接,然后单击链接。
  • 在您问题中的代码之后添加上面的行。是这样吗?我仍然不清楚你到底想要做什么。
猜你喜欢
  • 1970-01-01
  • 2023-03-04
  • 2014-01-30
  • 1970-01-01
  • 2016-09-29
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 2013-04-27
相关资源
最近更新 更多