如何使用seleniumpython在不重复的情况下单击站点的所有链接?

2024-09-30 01:26:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我想刮一个网站的所有页面,并点击所有的链接,而不点击链接2次可点击的网站。 我想留在网站上,我的意思是不要点击网站的facebook链接。你知道吗

我试试这个:

id = "nameOfSite"
driver.find_element_by_css_selector('a[href*="%s"]' % id).click()

Tags: idbyfacebook网站链接driver页面element
1条回答
网友
1楼 · 发布于 2024-09-30 01:26:40

一种解决方案是:将页面中的所有链接存储在set。将URL存储在set中的原因是它只存储唯一的值。避免冗余。然后使用foreach遍历set,并执行CTRL+click操作。此操作将在新选项卡中打开链接。因此,您将停留在当前页面。请在下面找到示例代码段。你知道吗

List<WebElement> allUrls = <locator to get all the urls>;
// Converting List to Set
Set<WebElement> uniqueUrls = new HashSet<WebElement>(allUrls);
for(WebElement eachUrl : uniqueUrls) {
    eachUrl.sendKeys(Keys.chord(Keys.CONTROL, Keys.RETURN));
}

希望这有帮助。你知道吗

相关问题 更多 >

    热门问题