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