如何用Python的Selenium在新标签页/窗口执行链接.click()操作?
实现Selenium在新标签页/窗口点击链接的方法
当然可以,以下几种方法都能实现需求,不需要依赖网站本身的链接设置:
方法1:修改链接的target属性
通过JavaScript给目标链接添加target="_blank"属性,点击时就会自动在新标签页打开:
link = driver.find_element(By.XPATH,'//*[@id="block-system-main"]/div/div/div/div[3]/table/tbody/tr[{}]/td[2]/a'.format(rando)) driver.execute_script("arguments[0].scrollIntoView()",link) # 为链接添加target="_blank"属性 driver.execute_script("arguments[0].setAttribute('target', '_blank')", link) link.click()
方法2:模拟键盘快捷键点击
利用Ctrl+Enter(Windows/Linux)或Command+Enter(Mac)的快捷键,模拟用户在新标签页打开链接的操作:
from selenium.webdriver.common.keys import Keys link = driver.find_element(By.XPATH,'//*[@id="block-system-main"]/div/div/div/div[3]/table/tbody/tr[{}]/td[2]/a'.format(rando)) driver.execute_script("arguments[0].scrollIntoView()",link) # Windows/Linux环境使用Ctrl+Enter,Mac替换为Keys.COMMAND link.send_keys(Keys.CONTROL + Keys.ENTER)
方法3:直接用JavaScript打开新窗口
获取链接的href属性,通过JavaScript直接调用window.open()打开新窗口:
link = driver.find_element(By.XPATH,'//*[@id="block-system-main"]/div/div/div/div[3]/table/tbody/tr[{}]/td[2]/a'.format(rando)) driver.execute_script("arguments[0].scrollIntoView()",link) # 获取链接地址并打开新窗口 link_url = link.get_attribute('href') driver.execute_script(f"window.open('{link_url}');")
以上三种方法都能实现你的需求,根据实际场景选择即可。
内容的提问来源于stack exchange,提问作者Rocheteau
相关产品推荐
相关产品推荐

