selenium控制超链接在当前标签页中打开或重新打开一个标签页

selenium控制超链接在当前标签页中打开或重新打开一个标签页

 

在web页面源码中,控制超链接的打开是在当前标签页还是重新打开一个标签页,是由属性target=“_black”进行控制的。
如果还有属性target=“_black”,则点击超链接会重新打开一个标签页,反之在当前标签页打开。

使用 selenium 控制,则需要借助 js 进行对属性 target=“_black” 的设置或移除操作。

 

以百度首页“新闻”为例,使其重新打开一个标签页。

from selenium import webdriver
import time

driver = webdriver.Chrome('')
driver.get("https://www.baidu.com/")
time.sleep(2)

# 定位 新闻
element = driver.find_element_by_name('tj_trnews')

# js 语句, 定义一个变量el,并且给其赋值 新闻 元素
# 对 el 进行 target='_blank' 属性设置
js = "var el = document.getElementsByName('tj_trnews')[0];" \
     "el.setAttribute('target','_blank');"

# 移除属性 target,使访问的页面在当前页面打开
# el.removeAttribute("target");

# driver 执行 js 语句
driver.execute_script(js)

element.click()

# driver.quit()

 

posted @ 2019-10-24 16:55  Tynam.Yang  阅读(2171)  评论(0编辑  收藏  举报