我们在做web自动化测试时候,有时候会遇到富文本这类的控件的时候,不管你怎么定位,都定位不到的时候,你需要换个思维,我们可以用一下javascript脚本来实现这样。
webdriver提供了execute_script()方法来执行javascript代码,这个我们用一个案例来展示如何,打开百度搜索页面,利用javascript代码把“selenium调用js”文字输入到文本框当中。
python脚本如下:
#导入webdriver类
from selenium import webdriver
#打开火狐浏览器
driver=webdriver.Firefox()
#最大化浏览器界面窗口
driver.maximize_window()
#打开网址
driver.get("打开百度网址")
#定义一个变量,输入文本框的文字
text="selenium调用js"
#javascript代码
js="var ms=document.getElementById('kw');ms.value='"+text+"';"
#selenium调用javascript
driver.execute_script(js)
#退出并关闭浏览器
driver.quit()
其实在selenium中还可以利用javascript来实现其他一些特殊的操作,可以操作网页上下滚动,上下移动这样的操作行为。
python实现脚本如下:
from selenium import webdriver
from time import sleep
#打开火狐浏览器
driver=webdriver.Firefox()
driver.get("打开百度网页")
#设置浏览器窗口大小
driver.set_window_size(600,600)
#文本框里输入值
driver.find_element_by_id("kw").send_keys("测试")
#点击百度一下按钮
driver.find_element_by_id("su").click()
#暂停5秒时间
sleep(5)
#设置网页滚动条停留的位置
js="window.scrollTo(100,450);"
#执行javascript代码
driver.execute_script(js)
driver.quit()
领取专属 10元无门槛券
私享最新 技术干货