selenium(7):使用JavaScript操作页面元素(含改变元素属性值)

在webdriver脚本代码中执行JavaScript代码,来实现对页面元素的操作。此种方式主要用于解决在某些情况下,页面元素的.click()、.send_keys()无法生效等问题。JavaScript操作页面元素为selenium自动化进阶部分。下面以例子做简单介绍。

1、输入文本值

searchInputBoxJS=”document.getElementById(‘kw’).value=’自动化测试’;”#打开百度首页,在id为‘kw’的文本框(搜索框)内输入‘自动化测试’
self.driver.execute_script(searchInputBoxJS)

2、点击按钮

searchButonJS=”document.getElementById(‘su’).click()”
self.driver.execute_script(searchButonJS)

3、操作日期控件

startTime = datetime.datetime.now()
endTime = startTime + datetime.timedelta(days=3)
startDate = startTime.strftime('%Y-%m-%d %H:%M:%S')
endDate = endTime.strftime('%Y-%m-%d %H:%M:%S')
js_statime_dynamic = "$('#startDate').val('" + startDate + "')"#向日期控件输入日期,send_keys()无法输入
js_endtime_dynamic = "$('#endDate').val('" + endDate + "')"

4、处理内嵌div滚动条

jsTop = “document.getElementById(‘su’).scrollTop=10000”#拉到最上面
jsBottom = “document.getElementById(‘su’).scrollTop=0”#拉到最下面
jsLeft = “document.getElementById(‘su’).scrollLeft=10000”#拉到最左边
jsRight = “document.getElementById(‘su’).scrollLeft=0”#拉到最右边

5、改变元素的属性值

#找到该元素所在位置
targetEle = self.find_element(*self.targetEle_loc)
# arguments[0]对应的是第一个参数,可以理解为python里的%s传参,与之类似。'.value'表示修改元素的value属性的值。
self.driver.execute_script("arguments[0].value = '99';", targetTag)

js = "document.getElementById('goodsName').setAttribute('maxlength','100')"
self.driver.execute_script(js)

posted @ 2021-11-02 10:33  Tester-**  阅读(729)  评论(0编辑  收藏  举报