如何使用Control +单击Selenium Webdriver打开嵌入在web元素中的链接,该链接位于主选项卡,同一窗口的新选项卡中 [英] How to open a link embeded in a webelement with in the main tab, in a new tab of the same window using Control + Click of Selenium Webdriver
问题描述
在主选项卡的Web元素中嵌入了一个链接,我想使用Selenium Webdriver和python在同一窗口的新选项卡中打开该链接。
在新选项卡中执行一些任务,然后关闭该选项卡并返回主选项卡。
我们将手动执行此操作,方法是右键单击链接,然后选择在新选项卡中打开以在新选项卡中打开该链接。
我是Selenium的新手。我正在使用Selenium和BeautifulSoup进行网络抓取。我只知道如何点击链接。我已经阅读了很多帖子,但找不到正确的答案
url = https: //www.website.com
路径= r'path_to_chrome_driver'
驱动器= webdriver.Chrome(路径)
drive.implicitly_wait(30)
drive.get(url)
源= drie.page_source
py_button = driver.find_element_by_css_selector( div [data-res-position ='1'])
py_button.click()
我希望 div [data-res-position =' 1']
在新标签页中打开
父标签 中的webelement,使用
您可以在
Java 的解决方案-ctrl-click-combination-in-selenium-webdriver / 46214265#46214265>在Selenium Webdriver中使用Ctrl +单击组合键打开新标签
更新
要将Selenium的重点转移到新打开的标签上,您可以在以下位置找到详细的讨论在新标签页中打开Selenium + Python
There is a link embedded in a web element in the Main Tab, I want to open that link in a new tab in the same window using Selenium Webdriver and python. Perform some tasks in the new tab and then close that tab and return back to the main tab. Manually we will do this by right-clicking on the link and then select "open in new tab" to open that link in new tab.
I am new to Selenium. I am using Selenium and BeautifulSoup to web scrape. I only know how to click on a link. I have read through many posts but couldn't find a proper answer
url = "https://www.website.com"
path = r'path_to_chrome_driver'
drive = webdriver.Chrome(path)
drive.implicitly_wait(30)
drive.get(url)
source = drie.page_source
py_button = driver.find_element_by_css_selector("div[data-res-position = '1']")
py_button.click()
I expect the link in div[data-res-position = '1']
to open in a new tab
As there is a link embedded within in the webelement in the Parent Tab, to open the link in a New Tab in the same window using Selenium and Python you can use the following solution:
To demonstrate the workflow the url
https://www.google.com/
was opened in the Parent Tab and thenopen in new tab
functionalty is implemented throughActionChains
methodskey_down()
,click()
andkey_up()
methods.
Code Block:
from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.keys import Keys import time options = webdriver.ChromeOptions() options.add_argument("start-maximized") driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe') driver.get("https://www.google.com/") link = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, "Gmail"))) ActionChains(driver).key_down(Keys.CONTROL).click(link).key_up(Keys.CONTROL).perform()
Note: You need to replace
(By.LINK_TEXT, "Gmail")
with your desired locator e.g.("div[data-res-position = '1']")
Browser Snapshot:
You can find a relevant Java based solution in Opening a new tab using Ctrl + click combination in Selenium Webdriver
Update
To shift Selenium's focus to the newly opened tab you can find a detailed discussion in Open web in new tab Selenium + Python
这篇关于如何使用Control +单击Selenium Webdriver打开嵌入在web元素中的链接,该链接位于主选项卡,同一窗口的新选项卡中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!