JavaScript当前窗口打开链接

您所在的位置:网站首页 js当前窗口打开 JavaScript当前窗口打开链接

JavaScript当前窗口打开链接

#JavaScript当前窗口打开链接| 来源: 网络整理| 查看: 265

JavaScript当前窗口打开链接 一、问题

当在单击网页链接时,会在一个新的窗口中打开链接,此时我们只想在当前窗口打开链接。对于多窗口的处理,只需要修改target属性即可。查看“F12”,会发现其target="_blank",然后将_blank去掉即可。

二、示例

比如,打开百度,在当前窗口打开“新闻”链接,发现链接存在target="_blank",预示着它会在新窗口打开。

直接点击“新闻”,直接会在新窗口打开

此时想直接在当前窗口打开链接,应该怎么办呢?一种可以直接手动把target="_blank"删除即可。通过自动化可以参考如下:具体的流程是用传统定位到“新闻”,然后给当前标签添加ID属性,然后再根据原生JS删除target="_blank"即可。

from time import sleep from selenium import webdriver from selenium.webdriver.common.by import By class TestBaidu: def setup(self): self.url = "https://www.baidu.com/" self.driver = webdriver.Chrome() self.driver.maximize_window() self.driver.get(self.url) self.driver.implicitly_wait(5) def teardown(self): sleep(5) self.driver.quit() def add_attribute(self, selector, attribute_name, value): """ 封装向页面标签添加新属性的方法调用JS给页面标签添加新属性, arguments[0]~arguments[2]分别会用后面的element,attributeName和value参数进行替换 添加新属性的JS代码语法为:element.attributeName=value 比如input.name='test' """ element = self.driver.find_element(*selector) self.driver.execute_script("arguments[0].%s=arguments[1]" % attribute_name, element, value) def test_locator_by_js(self): locator = (By.LINK_TEXT, '新闻') # LINK_TEXT定位“新闻” self.add_attribute(locator,"id","news") #给“新闻”添加ID属性 js_of_remove = "document.getElementById('news').target=''" # 去掉target属性的JS self.driver.execute_script(js_of_remove) # 根据添加的ID属性“news”,去掉target属性 sleep(2) self.driver.find_element_by_link_text('新闻').click()

可以看到新添加的属性id="news"

最后只在当前窗口打开了链接。

三、参考

1、xpath定位:https://www.w3school.com.cn/xpath/xpath_syntax.asp

2、css定位:https://www.w3school.com.cn/cssref/css_selectors.asp

3、jQuery 选择器:https://www.w3school.com.cn/jquery/jquery_selectors.asp



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3