selenium11_js语法
1.JS语法
js 中元素定位方法,如下5种方法:
a.通过id获取,获取的是单个
document.getElementById("id")
b.通过name获取,获取的是多个
document.getElementsByName("name")[0]
c.通过标签名选取元素,获取的是多个
document.getElementsByTagName("tag")
d.通过CLASS类选取元素,获取的是多个
document.getElementsByClassName("class")
e.通过CSS选择器选取元素
document.querySelectorAll("css selector")
2.处理浏览器的滚动条
#滚动到底部
# js_end = "window.scrollTo(0, 100000)" #两个元素分别是横向滚动条,和纵向滚动条
js_end = "window.scrollTo(0, document.body.scrollHeight)"
driver.execute_script(js_end)
#滚动到顶部
js_top = "window.scrollTo(0, 0)"
driver.execute_script(js_top)
#聚焦元素
ele = driver.find_element_by_xpath("//a[contains(text(), '美国副总统彭斯')]")
driver.execute_script("arguments[0].scrollIntoView();", ele)
3.处理页面上的滚动条(非浏览器本身的)
#控制纵向滚动条 获取多个,通过下标获取
js = 'document.getElementsByClassName("scroll")[0].scrollTop=10000'
driver.execute_script(js)
#控制纵向滚动条
js = 'document.getElementsByClassName("scroll")[0].scrollLeft=10000'
driver.execute_script(js)
4.处理有iframe的富文本
js1 = 'document.getElementsByClassName("ke-iframe")[0].contentWindow.document.body.innerHTML="hello";'
5.不带iframe的写法
js = '''
document.getElementById("account").value="admin";
document.getElementsByName("password")[0].value="123456";
document.getElementById("submit").click()
'''
6.js修改属性,如日历控件
js = '''
document.getElementById("train_date").removeAttribute("readonly");
document.getElementById("train_date").value = "2019-04-08";
'''