Selenium webdriver 如何点击具有相似文本的链接?

Selenium webdriver 如何点击具有相似文本的链接?,selenium-webdriver,Selenium Webdriver,我有一个页面包含100个链接,有相同的文本“结果”。如何逐一点击这些链接?请给我推荐一个selenium webdriver脚本。如果您使用Java: import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxD

我有一个页面包含100个链接,有相同的文本“结果”。如何逐一点击这些链接?请给我推荐一个selenium webdriver脚本。

如果您使用Java:

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 void clickLinks(final String url,final String linkText) throws Exception
{
    WebDriver webDriver = new FirefoxDriver();
    webDriver.get(url);
    List<WebElement> links = webDriver.findElements(By.linkText(linkText));
    for (WebElement link : links)
        link.click();
    webDriver.quit();
}
from selenium import webdriver

def clickLinks(url,linkText):
    profile = webdriver.FirefoxProfile()
    browser = webdriver.Firefox(firefox_profile=profile)
    browser.get(url)
    links = browser.find_elements_by_link_text(linkText)
    for link in links:
        link.click()
    browser.quit()
更新: 我怀疑你不能在向下滚动页面之前点击链接(正如你在评论中提到的)。也许你找不到链接。。。在任何情况下,如果您想将页面一直向下滚动,那么以下是您的方法:

Java:
webDriver.executeScript(“window.scrollTo(0,document.body.scrollHeight);”)

Python:
browser.execute_脚本(“window.scrollTo(0,document.body.scrollHeight);”)


您可以用一些数字值替换
document.body.scrollHeight
,以便部分滚动它。

谢谢您的文章。巴拉克,我还有一个澄清。现在,我可以单击所有链接-这是第一组链接,但下一组链接将仅在向下滚动页面时显示。你知道怎么解释吗?没问题。如果你喜欢这个答案,为什么要投赞成票呢?关于你的新问题,请看我上面的更新答案。