selenium测试文档:
用例的关键元素
-
导入依赖
-
创建driver
-
执行自动化步骤
-
断言
编写的selenium用例要求:
1、打开页面https://testerhome.com/
2、点击 - 社团 标签
3、点击 - 求职面试圈
4、访问顶部的第一个帖子
实例操作:
通过Firefox的selenium IDE方式,找到“社团”的几种定位器
Firefox的selenium IDE -----打开http://testerhome.com网页,点击“社团”标签---------停止Record
查看link方式:
由于点击事件依赖于js操作,所以我们必须给其足够的等待时间,让页面将 js, css···加载完成
一个页面还没有完全加载,点击这个元素,会发现这个元素是有问题的,元素找不到,或者不可点击等问题。此时,可以强行加sleep【但是,不推荐:因为每个事件的加载时间不同】
from selenium import webdriver
from time import sleep
class TestHogwarts():
"""由于本文件使用pytest框架编写测试用例,所以需要写上setup和teardown"""
def setup(self):
# 没有将Firefox的geckodriver路径放入path环境变量中时,需要传入它的绝对路径
self.driver = webdriver.Firefox(executable_path="D:/FirefoxDriver-test/geckodriver.exe") #driver初始化
self.driver.maximize_window() # 窗口最大化
pass
def teardown(self):
self.driver.quit() #资源回收,页面会自动关闭
pass
def test_hogwarts(self):
self.driver.get("http://testerhome.com")
sleep(1)
#通过Firefox的selenium IDE方式,找到“社团”的几种定位器
self.driver.find_element_by_link_text("社团").click()
sleep(1)
#获取定位器: 点击“求职面试圈”,
self.driver.find_element_by_link_text("求职面试圈").click()
sleep(1)
# 点击第一条话题
self.driver.find_elements_by_css_selector(".topic-29703 .title > a")
sleep(1)
每个元素定位时,都会去find_element查找一个元素。但是,不同元素的查找时间可能不同。也就是加载时间不同。对于这种情况,我们可以给一个动态等待时间。
这里设置:隐式等待(动态)5秒;如果在<5秒的时间内加载完成,则立即向下操作,不需要等够5秒;
from selenium import webdriver
from time import sleep
class TestHogwarts():
"""由于本文件使用pytest框架编写测试用例,所以需要写上setup和teardown"""
def setup(self):
# 没有将Firefox的geckodriver路径放入path环境变量中时,需要传入它的绝对路径
self.driver = webdriver.Firefox(executable_path="D:/FirefoxDriver-test/geckodriver.exe") #driver初始化
self.driver.maximize_window() # 窗口最大化
"""
由于每个操作的反应时间不同,我们可以让其动态等待
这里设置:隐式等待(动态)5秒;如果在<5秒的时间内加载完成,则立即向下操作,不需要等够5秒;
"""
self.driver.implicitly_wait(5) #隐式等待(可以简化代码)
pass
def teardown(self):
self.driver.quit() #资源回收,页面会自动关闭
pass
def test_hogwarts(self):
self.driver.get("http://testerhome.com")
#通过Firefox的selenium IDE方式,找到“社团”的几种定位器
self.driver.find_element_by_link_text("社团").click()
#获取定位器: 点击“求职面试圈”,
self.driver.find_element_by_link_text("求职面试圈").click()
# 访问第一条话题
self.driver.find_elements_by_css_selector(".topic-29703 .title > a")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。