selenium调⽤js⽂件_Selenium执⾏JavaScript脚本的⽅法⽰例JavaScript是运⾏在客户端(浏览器)和服务器端的脚本语⾔,允许将静态⽹页转换为交互式⽹页。可以通过 Python Selenium WebDriver 执⾏ JavaScript 语句,在Web页⾯中进⾏js交互。那么js能做的事,Selenium应该⼤部分也能做。WebDriver是模拟终端⽤户的交互,所以就不能点击不可见的元素,有时可见元素也不能点击。在这些情况下,我们就可以通过WebDriver 执⾏JavaScript来点击或者执⾏页⾯元素。本⽂将介绍如何使⽤ WebDriver执⾏ JavaScript语句。
Web元素定位及操作
使⽤execute_script() 执⾏ JavaScript 代码,有两种⽅法实现元素操作
⽅法1:⽂档级别操作
直接使⽤JavaScript实现元素定位和动作执⾏,主要⽅法有:
测试⽰例:
打开百度⼀下
输⼊框输⼊”test“
点击百度⼀下
python代码:
def test_baidu(self):
("www.baidu")
ute_script('ElementById("kw").value = "test"')
time.sleep(2)
ute_script('ElementById("su").click()')
time.sleep(2)
在执⾏过程中,WebDriver 将 JavaScript 语句注⼊到浏览器中,然后脚本将执⾏。这个注⼊ JavaScript 有⾃⼰的名称空间,不会⼲扰实际⽹页中的 JavaScript运⾏。
⽅法2:元素级别操作
js脚本编程入门可以先使⽤WebDriver获取想要操作的元素,然后使⽤JavaScript执⾏操作。
input_ele = driver.find_element_by_id("su")
python代码:
def test_baidu2(self):
("www.baidu")
input_ele = self.driver.find_element_by_id("kw")
ute_script("arguments[0].value = 'test';", input_ele)
time.sleep(2)
baidu_ele = self.driver.find_element_by_id("su")
ute_script("arguments[0].click();", baidu_ele)
time.sleep(2)
可以在语句中使⽤多个 JavaScript动作:
username = driver.find_element_by_xpath("//*[@id='username']")
password = driver.find_element_by_xpath("//*[@id='password']")
获取返回值
可以返回JavaScript的执⾏结果:
滑动
在 Web⾃动化测试 | ActionChains、TouchAction 中介绍了TouchAction类中scroll_from_element()也可以滑动页⾯。
滑动到浏览器底部
document.documentElement.scrollTop=10000
window.scrollTo(0, document.body.scrollHeight)
滑动到浏览器顶部
document.documentElement.scrollTop=0
window.scrollTo(document.body.scrollHeight,0)
更改元素属性
⼤部分时间控件都是 readonly属性,需要⼿动去选择对应的时间。⾃动化测试中,可以使⽤JavaScript代码取消readonly属性。测试步骤:
打开测试页⾯
修改出发⽇期
断⾔⽇期是否修改成功
python测试代码:
def test_datettime(self):
("www.12306/index/")
# 取消readonly属性
ute_script("ElementById('train_date'); veAttribute('readonly')")
ute_script("ElementById('train_date').value='2020-10-01'")
time.sleep(3)
now_time = ute_script("ElementById('train_date').value")
assert '2020-10-01' == now_time
总结
Selenium WebDriver 执⾏ JavaScript代码是⼀个⾮常强⼤的功能,可以实现WebElement 接⼝所有功能,甚⾄更多的功能。⽐如在web 性能测试中可以调⽤Web API接⼝window.performance来测试Web性能。
到此这篇关于Selenium执⾏JavaScript脚本的⽅法⽰例的⽂章就介绍到这了,更多相关Selenium执⾏JavaScript脚本内容请搜索脚本之家以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持脚本之家!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论