python+selenium⼗⼀:jQuery和js语法、js处理iframe selenium 执⾏jQuery/js语法
1、jQuery
jQuery只⽀持css语法:
jquery = '$(CSS).val("XXX");' # 根据css语法定位到元素,输⼊内容
jquery = '$(CSS).val('');' # 清空
jquery = '$(CSS).click();' # 点击
# 在某个已经定位的元素上执⾏ jquery
button = driver.find_element_by_class_name('btn')
# Jquery控制浏览器内嵌div的滚动条
Jquery = '$(".modal-body").scrollTop(10000)'
# Jquery控制浏览器的滚动条
Jquery = '$(document).scrollTop(1000)'
2、js
1.通过id获取 ElementById(“id”)----------获取的是单个
2.通过name获取 Elements ByName(“Name”)[0]---------获取的是多个返回的是list
3.通过标签名选取元素 Elements ByTagName(“tag”) --------获取的是多个
4.通过CLASS类选取元素 Elements ByClassName(“class”) --------获取的是多个兼容性:IE8及其以下版本的浏览器未实现getElementsByClassName⽅法
5.通过CSS选择器选取元素 document.querySelectorAll(“css selector") 兼容性:IE8及其以下版本的浏览器只⽀持CSS2标准的选择器语法
js = 'ElementById(xxx).value="XXXX"' # 输⼊值
js = 'ElementsByClassName("prefpanelgo")[0].click();' # 点击
# 去掉元素的readonly属性
js = 'ElementById("xxx").removeAttribute("readonly");'
# 把元素不可见属性改为可见js控制滚动条
js = "ElementsByClassName('password')[0].style.display='block'"
# 去掉⽇期控件的readonly属性,并填⼊⽇期
js = 'ElementById(xxx).removeAttribute("readonly");ElementById(xxx).value="20xx-xx-xx"' ute_script(js)
jquery = '$("#train_date").val("");$("#train_date").val("20xx-xx-xx");$("#query_ticket").click()'
# 聚焦元素
target = self.find_element(locator)
内嵌滚动条:
# 纵向底部
# 获取id是单个元素,因为⼀个页⾯上id是唯⼀的
#js = 'ElementById("XXXX").scrollTop=10000'
# 获取的class是多个,取list的第⼀个对象
# 顶部:scrollTop=0,底部:scrollTop=10000
js0 = ' Elements ByClassName("scroll")[0].scrollTop=10000'
# 控制横向滚动条位置
# 最左边:scrollLeft=0,最右边:scrollLeft=10000
js1 = ' Elements ByClassName("scroll")[0].scrollLeft=10000'
# js处理iframe
# Js处理iframe⽆需先切换到iframe上,再切回来操作。它可以在iframe上和主页⾯上来回⾃由操作-----这是Js的强⼤之处js = 'ElementById("Editor_Edit_EditorBody_ifr").contentWindow.document.body.innerHTML="%s"'
% ute_script(js)
# innerHTML:插⼊html⽂本内容
# 以上js写法只是专门处理富⽂本(有iframe)相关的问题,其它地⽅遇到iframe不⼀定通⽤
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论