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()