在打开页面上的链接时,经常会弹出一个新窗口,这样在多个窗口之间来回切换比较复杂,有没有办法让新打开的链接还在原窗口显示呢?
一、多窗口
点击百度搜索页上的链接,会打开一个新的窗口。
二、查看链接属性
查看百度搜索页上的链接属性,会发现这些链接有着共同属性:target="_blank"。该属性的作用是超链接会用一个新标签页打开,那么将target属性值清除掉,便可实现点击该超链接后不会在新标签页中显示。
三、去掉target="_blank"属性
百度搜索页上的链接具有属性:target="_blank",所以点击链接时会打开一个新的标签页。因此为了让新链接在原标签页上打开,只需通过JS代码去掉链接的target属性就可以了。
注:并不是所有的链接都适用于本方法,本篇只适用于有target="_blank"这个属性的链接。
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
time.sleep(1)
# 去掉target属性
js = 'document.querySelector("#s-top-left > a:nth-child(6)").target="";'
driver.execute_script(js)
# 打开链接
driver.find_element('xpath', '//*[@id="s-top-left"]/a[6]').click()