我有一个页面包含100个具有相同文本“结果”的链接。我如何逐个点击这些链接?请建议我使用selenium webdriver脚本。
答案 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()
我怀疑在滚动页面之前无法点击链接(正如您在评论中提到的那样)。也许你无法找到链接......无论如何,如果你想要一直向下滚动页面,那么你可以这样做:
Java:webDriver.executeScript("window.scrollTo(0,document.body.scrollHeight);")
。
Python:browser.execute_script("window.scrollTo(0,document.body.scrollHeight);")
。
您可以将document.body.scrollHeight
替换为某个数值,以便部分滚动它。