IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> selenium+unittest自动化测试(二)---浏览器控制及元素定位的方法 -> 正文阅读

[开发测试]selenium+unittest自动化测试(二)---浏览器控制及元素定位的方法

目录

一、浏览器控制方法

二、元素定位的方法

三、针对元素的常见操作方法

四、举例

五、遇到的问题


一、浏览器控制方法

????????1、打开网页

from selenium import webdriver
driver = webdriver.Chrome()

????????2、页面刷新

driver.refresh()

????????3、访问地址

driver.get("http://www.baidu.com")

????????4、页面切换

driver.back() #返回上一页 
driver.forward() #切换到下一页

????????5、设置窗口大小

driver.set_window_size(540,960) #设置窗口大小 
driver.maximize_window() #设置窗口占满整个屏幕

????????6、截屏

driver.get_screenshot_as_file("D:\")

????????7、退出

driver.close() #关闭当前窗口 
driver.quit() #关闭浏览器进程

????????8、设置休眠

time.sleep(3)

????????9、智能隐性的等待

driver.implicitly_wait(10)

????????10、智能显性等待

WebDriverWait(driver,5).until(lambda driver:driver.find_element_by_id('query')) WebDriverWait(driver, 5).until_not(lambda driver:driver.find_element_by_name('query'))

二、元素定位的方法

????????以下8种是通过元素的属性直接定位:

id定位:find_element_by_id(self, id_)
name定位:find_element_by_name(self, name)
class定位:find_element_by_class_name(self, name)
tag定位:find_element_by_tag_name(self, name)
link定位:find_element_by_link_text(self, link_text)
partial_link定位find_element_by_partial_link_text(self, link_text)
xpath定位:find_element_by_xpath(self, xpath)
css定位:find_element_by_css_selector(self, css_selector)

????????以上8种都有复数形式,区别是复数形式定位返回的是一个list队列,然后还需要从这个队列中找到需要的元素:

id复数定位find_elements_by_id(self, id_)
name复数定位find_elements_by_name(self, name)
class复数定位find_elements_by_class_name(self, name)
tag复数定位find_elements_by_tag_name(self, name)
link复数定位find_elements_by_link_text(self, text)
partial_link复数定位find_elements_by_partial_link_text(self, link_text)
xpath复数定位find_elements_by_xpath(self, xpath)
css复数定位find_elements_by_css_selector(self, css_selector)

三、针对元素的常见操作方法

clear 清除元素的内容
send_keys 模拟按键输入
click 点击元素
submit 提交表单
size 获取元素的尺寸
text 获取元素的文本
get_attribute(name) 获取属性值
location 获取元素坐标,先找到要获取的元素,再调用该方法
page_source 返回页面源码
driver.title 返回页面标题
current_url 获取当前页面的URL
is_displayed() 设置该元素是否可见
is_enabled() 判断元素是否被使用
is_selected() 判断元素是否被选中
tag_name 返回元素的tagName
context_click(elem) 右击鼠标点击元素elem,另存为等行为
double_click(elem) 双击鼠标点击元素elem,地图web可实现放大功能
drag_and_drop(source,target) 拖动鼠标,源元素按下左键移动至目标元素释放
move_to_element(elem) 鼠标移动到一个元素上
click_and_hold(elem) 按下鼠标左键在一个元素上
perform() 在通过调用该函数执行ActionChains中存储行为
send_keys(Keys.ENTER) 按下回车键
send_keys(Keys.TAB) 按下Tab制表键
send_keys(Keys.SPACE) 按下空格键space
send_keys(Kyes.ESCAPE) 按下回退键Esc
send_keys(Keys.BACK_SPACE) 按下删除键BackSpace
send_keys(Keys.SHIFT) 按下shift键
send_keys(Keys.CONTROL) 按下Ctrl键
send_keys(Keys.ARROW_DOWN) 按下鼠标光标向下按键
send_keys(Keys.CONTROL,‘a’) 组合键全选Ctrl+A
send_keys(Keys.CONTROL,‘c’) 组合键复制Ctrl+C
send_keys(Keys.CONTROL,‘x’) 组合键剪切Ctrl+X
send_keys(Keys.CONTROL,‘v’) 组合键粘贴Ctrl+V

四、举例

import unittest2
import selenium import webdriver

class webcheck(unittest2.TestCase):
    """界面登录测试"""
    @classmethod
    def setUp(cls):
        # 打开浏览器
        cls.driver = webdriver.Chrome()
        # 将浏览器设置为占满整个屏幕
        cls.driver.maxmize_window()
        #访问网页
        cls.driver.get('https://xxx')
    def test_openit(self):
        # 找到name为userName的元素,并输入用户名hillwill_wxt
        self.driver.find_element_by_name("userName").send_keys("hillwill_wxt")
        # 找到name为password的元素,并输入密码123456
        self.driver.find_element_by_name("password").send_keys("123456")
        # 点击登录按钮
        self.driver.find_element_by_xpath("//*[@id='app']/div[2]/div/ng-include/div/div/div/form/div[2]/button").click()
    @classmethod
    def tearDown(cls):
        cls.driver.close()
        
if __name__=='__main__':
    unittest2.main()

五、遇到的问题

? ? ? ? 问题描述:click()点击按钮没有反应

????????解决方法:click()点击按钮没有反应时,讲click()改为Enter操作通常可以解决问题。例如,将以下代码

# 点击登录按钮 
self.driver.find_element_by_xpath("//*[@id='app']/div[2]/div/ng-include/div/div/div/form/div[2]/button").click()

????????改为

# 点击登录按钮 
Element el = self.driver.find_element_by_xpath("//*[@id='app']/div[2]/div/ng-include/div/div/div/form/div[2]/button") 
el.sendKeys(keys.ENTER)

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-04 11:30:46  更:2021-08-04 11:31:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/28 3:21:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码