简体   繁体   English

python selenium 在新标签页中打开链接并继续 session 在新标签页中

[英]python selenium open link in new tab and continue session in new tab

i lost my current session when selenium click the link and new tab open.i don't know how to continue session in new tab in yahoo.com.当 selenium 单击链接并打开新选项卡时,我丢失了当前的 session。我不知道如何在 yahoo.com 的新选项卡中继续 session。

driver.get("https://in.yahoo.com")
search_field = driver.find_element_by_id('header-search-input')
search_field.clear()
search_field.send_keys('guru99')
search_field.submit()
elements =driver.find_element_by_xpath('//a[contains(@href, "https://www.guru99.com")]')
elements.click()
driver.find_element_by_link_text("What is Python?")
time.sleep(20)
driver.close()

You can open search result in the same tab:您可以在同一选项卡中打开搜索结果:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get("https://in.yahoo.com")
search_field = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.ID, 'header-search-input')))
search_field.clear()
search_field.send_keys('guru99')
search_field.submit()
el = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//a[contains(@href, "https://www.guru99.com")]')))
url = el.get_attribute('href')
driver.get(url)
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@title="Python"]'))).click()
driver.close()

You need to use driver.switch to the window. Then going back.你需要使用 driver.switch 到 window。然后回去。

window_before = driver.window_handles[len(driver.window_handles)]
driver.switch_to.window(len(driver.window_handles))
#do stuff
driver.switch_to.window(window_before)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM