19-通过JS代码处理多窗口

        在打开页面上的链接时,经常会弹出一个新窗口,这样在多个窗口之间来回切换比较复杂,有没有办法让新打开的链接还在原窗口显示呢?

一、多窗口

        点击百度搜索页上的链接,会打开一个新的窗口。

二、查看链接属性

        查看百度搜索页上的链接属性,会发现这些链接有着共同属性: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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值