如何点击具有相似文字的链接?

时间:2014-01-21 10:39:52

标签: selenium-webdriver

我有一个页面包含100个具有相同文本“结果”的链接。我如何逐个点击这些链接?请建议我使用selenium webdriver脚本。

1 个答案:

答案 0 :(得分:0)

如果您使用的是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();
}

如果您使用的是Python:

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()

UPDATE:

我怀疑在滚动页面之前无法点击链接(正如您在评论中提到的那样)。也许你无法找到链接......无论如何,如果你想要一直向下滚动页面,那么你可以这样做:

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

Python:browser.execute_script("window.scrollTo(0,document.body.scrollHeight);")

您可以将document.body.scrollHeight替换为某个数值,以便部分滚动它。