【发布时间】:2021-01-21 05:08:31
【问题描述】:
我面临一个非常奇怪的问题,即我在一个循环中调用一个函数,该函数会打开 Selenium Chrome 选项卡。如果关闭以前的选项卡,则打开近 4 个选项卡后。 我已多次检查我的代码,但找不到任何错误或原因。
def get_chromedriver(use_proxy=False, user_agent=None):
proxy = get_random_proxy()
# print(proxy)
manifest_json, background_json = get_proxy_variables(proxy[0], proxy[1], proxy[2], proxy[3])
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--start-maximized")
chrome_options.add_argument("--log-level=3")
chrome_options.add_experimental_option('excludeSwitches', ['enable-logging'])
if use_proxy:
pluginfile = 'proxy_auth_plugin.zip'
with zipfile.ZipFile(pluginfile, 'w') as zp:
zp.writestr("manifest.json", manifest_json)
zp.writestr("background.js", background_json)
chrome_options.add_extension(pluginfile)
if user_agent:
chrome_options.add_argument('--user-agent=%s' % user_agent)
driver = webdriver.Chrome(options=chrome_options)
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
})
return driver
def open_nike_url(url, user_name, pwd):
count = 0
driver = get_chromedriver(True)
driver.get(url)
login_btn = WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.CLASS_NAME, 'join-log-in')))
time.sleep(5)
login_btn.click()
driver = log_in(driver, user_name, pwd)
time.sleep(5)
pop_up = driver.find_elements_by_class_name("nike-unite-error-close")
# print("Outside Loop:", len(pop_up))
return driver
for i in range(len(accounts_info)):
open_nike_url(url, accounts_info[i][0], accounts_info[i][1])
time.sleep(1)
代码只是尝试为每个帐户登录一个网站。 因此,在登录某些帐户后,它会关闭以前的选项卡。
【问题讨论】:
标签: selenium selenium-webdriver selenium-chromedriver selenium-ide