gpt4 book ai didi

python - Chromedriver 在 Python 中获取现有的 Chrome 浏览器 session

转载 作者:太空宇宙 更新时间:2023-11-04 02:33:00 25 4
gpt4 key购买 nike

我想在 1 个浏览器(多个选项卡)中打开一个网站下的多个网络链接。该网站需要登录名和密码。

输入登录名和密码后,跳转到验证页面,要求提供通过电子邮件发送给我的验证码。

我查看了邮箱,在验证页面输入了验证码。登录成功。

现有的浏览器就在我面前。

但是代码没有提取它,并根据需要打开另一个选项卡。似乎某个连接丢失了。

我该如何继续? (或者作为替代方案,Python 如何重用现有的 Chrome 浏览器?)

这些代码通常可以正常工作,但在这种情况下(登录,输入验证码),情况并非如此。

import os, time
from selenium.webdriver import ChromeOptions, Chrome
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

chromedriver = "C:\\Python27\\Scripts\\chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver

opts = ChromeOptions() # leave browser open after code
opts.add_experimental_option("detach", True) # leave browser open after code
opts.add_argument('disable-infobars')
driver = webdriver.Chrome(chromedriver, chrome_options=opts) # leave browser open after code

driver.maximize_window()

verificationErrors = []
accept_next_alert = True

time.sleep(5)

base_url = "https://awebsite.com/"
driver.get(base_url)
window_0 = driver.window_handles[0]
driver.switch_to_window(window_0)
driver.find_element_by_id("username").clear()
driver.find_element_by_id("username").send_keys("username")
driver.find_element_by_id("password").clear()
driver.find_element_by_id("password").send_keys("password")
driver.find_element_by_id("Submit").click()

time.sleep(60)

driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')
window_1 = driver.window_handles[1]
driver.switch_to_window(window_1)
time.sleep(3)
driver.get('https://anotherwebsite.com')
time.sleep(3)

sys.exit()

最佳答案

您可以在下面尝试在两个不同的页面/标签上执行一些操作:

# Handle base page
base_url = "https://awebsite.com/"
driver.get(base_url)
window_0 = driver.current_window_handle
...

# Handle new page
driver.execute_script('window.open("https://anotherwebsite.com");')
window_1 = [window for window in driver.window_handles if window != window_0][0]
driver.switch_to_window(window_1)
# driver.close() # To close new tab
...

# Switch back to base page
driver.switch_to_window(window_0)

关于python - Chromedriver 在 Python 中获取现有的 Chrome 浏览器 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48679318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com