【问题标题】:I want to open a specific google link and back to the previous page and do the same with others links我想打开一个特定的谷歌链接并返回上一页并对其他链接做同样的事情
【发布时间】:2021-07-21 03:03:50
【问题描述】:

我试图使用 selenium 在 google 上进行搜索,当我得到结果时,打开第一个链接并返回上一页并打开第二个链接......等等,我想对其他链接做同样的事情,但是我不知道问题出在哪里

任何帮助,请。

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.common.keys import Keys

import time


driver = webdriver.Edge()

url = "https://www.google.com/"

driver.get(url)

search_field = driver.find_element(By.XPATH, '/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input')

search_field.send_keys("Anime")

search_field.send_keys(Keys.ENTER)

all_links = driver.find_elements(By.CLASS_NAME, "yuRUbf")

a = 0

for link in all_links :

        link[a].click()

        a += 1

        time.sleep(10)

        driver.back()
    

    

【问题讨论】:

  • 获取并存储 hrefs。然后你可以遍历它们并转到这些 URL。

标签: python selenium selenium-webdriver selenium-chromedriver browser-automation


【解决方案1】:

通过单击链接,浏览器焦点会跳转到新打开的选项卡,而 selenium 驱动程序不会自动执行此操作。因此,您需要将驱动程序切换到该打开的选项卡。之后,您可以关闭该选项卡并将驱动程序切换回第一个选项卡。

browser.getAllWindowHandles().then(function (handles) {
    browser.driver.switchTo().window(handles[1]);
    // do what you want on the new tab here
    browser.driver.close();
    browser.driver.switchTo().window(handles[0]);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 2011-12-25
    • 2016-09-26
    • 2023-01-31
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    相关资源
    最近更新 更多