首先 我们总结几种js常用的定位元素方法
除了id是定位到的是单个element元素对象,其它的都是elements返回的是list对象
1.通过id获取
document.getElementById(“id”)
2.通过name获取
document.getElementsByName(“Name”)
返回的是list
3.通过标签名选取元素
document.getElementsByTagName(“tag”)
4.通过CLASS类选取元素
document.getElementsByClassName(“class”)
兼容性:IE8及其以下版本的浏览器未实现getElementsByClassName方法
5.通过CSS选择器选取元素
document.querySelectorAll(“css selector")
兼容性:IE8及其以下版本的浏览器只支持CSS2标准的选择器语法
代码示例:
#给id为nice的元素 增加 title属性并赋值为“测试title”
js='document.getElementById("nice").setAttribute("title","测试title")'
#给id为nice的元素 删除 title属性
js='document.getElementById("nice").removeAttribute("title")'
#获取id为nice的元素 title属性的值
js='document.getElementById("nice").getAttribute("title")'
#修改id为nice的元素 title属性的值
js='document.getELementById("nice").title="测试"'
1.修改元素属性:以百度为例,点击登录页面的立即注册,页面会打开一个新的窗口,原因是:“立即注册”链接元素属性target=”_blank”导致。让链接在一个窗口打开就要修改target属性的值为空。
代码如下:
from selenium import webdriver
from time import sleep
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
driver.find_element_by_link_text("登录").click()
sleep(1)
#定位“立即注册”位置,修改target属性值为空,让新打开的链接显示在同一个窗口
js='document.getElementsByClassName("pass-reglink pass-link")[0].target=""'
driver.execute_script(js)#执行js语句
driver.find_element_by_link_text("立即注册").click()
sleep(3)
driver.quit()
2.去掉元素属性:以12306的车票查询界面为例,出发日期输入框无法直接输入时间,因为元素的属性是readonly,需要先去掉属性,才可以输入。
from selenium import webdriver
from time import sleep
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.12306.cn/index/')
sleep(2)
#js去掉属性
js='document.getElementById("train_date").removeAttribute("readonly")'
driver.execute_script(js)
#方式一:通过send_keys()输入值
# driver.find_element_by_id("train_date").clear()
# driver.find_element_by_id("train_date").send_keys('2020-08-20')
#方式二:js修改属性的值
js='document.getElementById("train_date").value="2019-01-12"'
driver.execute_script(js)
sleep(2)
driver.quit()
2、本站永久网址: https://www.xiaosiseo.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长QQ进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。