WebDriver高阶API(1)
2021-06-11 09:02
标签:selenium val 中间 xpath .exe roc nts false tca WebDriver高阶API(1) 1、使用JavaScript操作页面元素 2、操作滚动条 JS 3、操作Ajax产生的浮动框 方法一:通过模拟键盘下箭头进行选择悬浮框选项 方法二:通过匹配模糊内容选择悬浮框中选项 方法三:固定选择某一项,使用索引 4、结束Windows中浏览器进程 WebDriver高阶API(1) 标签:selenium val 中间 xpath .exe roc nts false tca 原文地址:https://www.cnblogs.com/test-chen/p/10566780.html#encoding=utf-8
import time
import unittest
import traceback
from selenium import webdriver
from selenium.common.exceptions import WebDriverException
class TestDemo(unittest.TestCase):
def setUp(self):
#启动浏览器
self.driver = webdriver.Ie(executable_path = "D:\\IEDriverServer")
def test_executeScript(self):
url = "http://www.sogou.com"
#访问搜狗首页
self.driver.get(url)
#构造JavaScript查找搜狗首页的搜索输入框并输入“魔兽世界”的代码字符串
searchInputBoxJs = "document.getElementById(‘query‘).value=‘魔兽世界‘"
#构造JavaScript查找搜狗首页的搜索按钮并点击的代码字符串
searchButtonJs = "document.getElementById(‘stb‘).click()"
try:
#通过JavaScript代码在搜索首页输入框中输入“魔兽世界”
self.driver.execute_script(searchInputBoxJs)
time.sleep(2)
#通过JavaScript代码点击搜狗首页上的搜索按钮
self.driver.execute_script(searchButtonJs)
time.sleep(2)
#断言
self.assertTrue(u"魔兽世界" in self.driver.page_source)
except WebDriverException,e:
#当定位失败时,会抛出WebDriverException异常
print u"在页面中没有找到要操作的页面元素",traceback.print_exc()
except AssertionError,e:
print u"页面不存在断言的关键字"
except Exception,e:
#发生其他异常时,打印异常堆栈信息
print traceback.print_exc()
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main()
#encoding=utf-8
import time
import unittest
import traceback
from selenium import webdriver
class TestDemo(unittest.TestCase):
def setUp(self):
#启动浏览器
self.driver = webdriver.Ie(executable_path = "D:\\IEdriverServer")
def test_scroll(self):
url = "http://www.sohu.com"
#访问搜狗首页
try:
self.driver.get(url)
#使用JavaScript的scrollTo函数和document.body.scrollHeight参数
# 将页面滚动条滑动到页面的最下方
self.driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")
#停顿3秒,用于人工验证滚动条是否滑动到指定位置
#根据测试需要,可注释下面的停顿代码
time.sleep(3)
#使用JavaScript 的scrollIntoView函数将被遮挡的元素滚动到可见屏幕上
#scrollIntoView(true)表示将元素滚动到屏幕中间
#scrollIntoView(false)表示将元素滚动到屏幕底部
self.driver.execute_script("document.getElementsByTagName(‘a‘)[500].scrollIntoView(true);")
time.sleep(3)
#使用javascript的scrollBy方法,使用0和400横纵坐参数
#将页面纵向向下滚动400像素
self.driver.execute_script("window.scrollBy(0,400)")
time.sleep(3)
except Exception,e:
print traceback.print_exc()
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main()
#encoding=utf-8
import time
import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
class TestDemo(unittest.TestCase):
def setUp(self):
#启动浏览器
self.driver = webdriver.Ie(executable_path = "D:\\IEDriverServer")
def test_AjaxDivOptionByKeys(self):
url = "http://www.sogou.com"
#访问sogou首页
self.driver.get(url)
#找到搜狗首页中的搜索输入框页面元素
searchBox = self.driver.find_element_by_id("query")
#在输入框输入 “魔兽世界”
searchBox.send_keys(u"魔兽世界")
#等待2秒,以便悬浮框加载完成
time.sleep(2)
for i in range(3):
#选择悬浮框中的第几个联想关键词选项就循环几次
#模拟键盘单击下箭头
searchBox.send_keys(Keys.DOWN)
time.sleep(0.5)
#当按下箭头到想要选择的选项后,瑞模拟键盘按回车键,选中该选项
searchBox.send_keys(Keys.ENTER)
time.sleep(2)
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main()
#encoding=utf-8
import time
import unittest
import traceback
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
class TestDemo(unittest.TestCase):
def setUp(self):
#启动浏览器
self.driver = webdriver.Ie(executable_path = "D:\\IEDriverServer")
def test_AjaxDivOptionByWords(self):
url = "http://www.sogou.com/"
#访问搜狗首页
self.driver.get(url)
try:
#找到搜狗首页中的搜索输入框页面元素
searchBox = self.driver.find_element_by_id("query")
#在搜索输入框中输入“魔兽世界”
searchBox.send_keys(u"魔兽世界")
#等待2秒,以便悬浮框完成林加载
time.sleep(2)
#查找内容包含“怀旧服”的悬浮框选项
suggetion_option = self.driver.find_element_by_xpath("//ul/li[contains(.,‘怀旧服‘)]")
#单击找到的悬浮选项
suggetion_option.click()
time.sleep(2)
except NoSuchElementException,e:
#打印异常堆栈信息
print traceback.print_exc()
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main()
#encoding=utf-8
import time
import unittest
import traceback
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
class TestDemo(unittest.TestCase):
def setUp(self):
#启动浏览器
self.driver = webdriver.Ie(executable_path = "D:\\IEDriverServer")
def test_AjaxDivOptionByIndex(self):
url = "http://www.sogou.com"
#访问搜狗首页
self.driver.get(url)
try:
#找到搜狗首页中的搜索输入框页面元素
searchBox = self.driver.find_element_by_id("query")
#在输入框中输入 “魔兽世界”
searchBox.send_keys(u"魔兽世界")
#等待2秒以便悬浮杠加载完成
time.sleep(2)
#查找悬浮框中的第三项,只需要更改li[3]中索引数字,就可以实现任意单击悬浮框中的选项。注意,索引从1开始
suggetion_option = self.driver.find_element_by_xpath("//*[@id=‘vl‘]/div[1]/ul/li[3]")
#单击找到的选项
suggetion_option.click()
time.sleep(3)
except NoSuchElementException,e:
#打印异常堆栈信息
print traceback.print_exc()
def tearDown(self):
self.driver.quit()
if __name__ == "__mian__":
unittest.main()
#encoding=utf-8
import unittest
from selenium import webdriver
class TestDemo(unittest.TestCase):
def test_killWindowsProcess(self):
chromeDriver = webdriver.Chrome(executable_path="D:\\chromedriver")
ieDriver = webdriver.Ie(executable_path="D:\\IEDriverServer")
#导入os包
import os
#结束ie浏览器进程
returnCode = os.system("taskkill /F /iM iexplore.exe")
if returnCode == 0:
print u"成功结束Ie浏览器进程"
else:
print u"结束IE浏览器进程失败"
#结束chrome浏览器
returnCode = os.system("taskkill /F /iM chrome.exe")
if returnCode == 0:
print u"成功结束chrome浏览器进程"
else:
print u"结束chrome浏览器进程失败"
if __name__ == "__main__":
unittest.main()