python3+selenium自动化测试-JS处理多窗口16
2020-09-05 本文已影响0人
C1R2
(16)JS处理多窗口
q1:在多个窗口之间来回切换比较复杂,那么有没有办法让新打开的链接在一个窗口打开呢?
a1: 利用js修改元素属性才能解决
浏览器页面切到html调试时,查看元素属性:target="_blank",可以手动把target属性去掉,然后查看打开的新链接是不是在原标签页打开
js去掉target="_blank"属性:js的定位元素,定位该元素的class属性,定位到该元素后直接修改target属性值为空
js = 'document.getElementsByClassName("mnav")[0].target="";'
driver.execute_script(js)
# coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
# 修改元素的target属性,有时候很多元素classnames属性都一样时候,复数定位,取对应的第几个
js = 'document.getElementsByClassName("mnav c-font-normal c-color-t")[4].target="";'
driver.execute_script(js)
driver.find_element_by_link_text("贴吧").click()