码迷,mamicode.com
首页 > 编程语言 > 详细

selenium-JavaScript的处理

时间:2019-11-05 15:22:52      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:测试过程   脚本   测试   自动化   富文本   rom   NPU   quit   spl   

JavaScript的处理

在自动化过程中,遇到js处理的元素,需要使用js语言对元素进行操作,例如,滑动到浏览器的底部或者顶部,时间控件的处理,元素可见不可见以及富文本的处理等,都需要js语言的支持,在selenium中,对js脚本的调用方法是execute_script.下面结合实例来讲述。

元素不可见的操作

处理方法是用js把隐藏的显示出来,方法如下:
js="document.getElementById(‘li‘).style.display=‘block‘;"
driver.execute_script(js)

浏览器滑动操作

以百度搜索为例子,分别操作滑动到底部,滑动到顶部操作,代码如下:
from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.implicitly_wait(30)
driver.maximize_window()
driver.get("http://www.baidu.com")
driver.find_element_by_id("kw").send_keys("selenium")
driver.find_element_by_id("su").click()
time.sleep(4)
‘‘‘ 进行滑动操作,滑动到底部‘‘‘
downjs = "var q=document.documentElement.scrollTop=10000"
driver.execute_script(downjs)
‘‘‘ 点击下一页,进入到第二页‘‘‘
driver.find_element_by_partial_link_text("下一页").click()
‘‘‘进行滑动操作,滑动到顶部‘‘‘
upjs = "var q=document.documentElement.scrollTop=10000"
‘‘‘ 先执行滑动到底部操作,在滑动到顶部‘‘‘
driver.execute_script(downjs)
time.sleep(3)
driver.execute_script(upjs)
time.sleep(2)
driver.quit()

时间控件的处理

时间控件在测试过程中经常遇到,但大部分时间控件都是只读属性,要实现在只读属性的时间控件输入时间,可以先取消时间控件的只读属性,取消只读属性后,在Input输入框输入value即可,操作代码如下:

from selenium import webdriver
import time

driver= webdriver.Chrome()
def startJs(startTime):
‘‘‘开始时间中输入自定义的时间‘‘‘
js = "$("input[placeholder=‘开始时间>当前时间‘]").removerAttr(‘readonly‘);" "$("input[placeholder=‘开始时间>当前时间‘]").attr(‘value‘,{0})".format(startTime)
driver.execute_script(js)

def endJs(endTime):
‘‘‘结束时间输入自定义的时间‘‘‘
js = "$("input[placeholder=‘结束时间>当前时间‘]").removerAttr(‘readonly‘);" "$("input[placeholder=‘结束时间>当前时间‘]").attr(‘value‘,{0})".format(endTime)
driver.execute_script(js)

startJs("2019-10-10 10:00:00")
time.sleep(3)
endJs("2019-10-10 10:02:00")

selenium-JavaScript的处理

标签:测试过程   脚本   测试   自动化   富文本   rom   NPU   quit   spl   

原文地址:https://www.cnblogs.com/qixc/p/11798369.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!