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";
'''

posted on 2024-07-04 12:52  水晶的晶  阅读(2)  评论(0编辑  收藏  举报