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_实战技巧 -> 正文阅读

[开发测试]Selenium_实战技巧

1 窗口大小

获取窗口的属性和相应的信息,并对窗口进行控制。

1.1 窗口大小

# 获取窗口大小
wd.get_window_size()

#改变窗口大小
wd.set_windwo_size(x, y)

1.2 获取当前窗口标题

wd.titile

1.3 获取当前窗口URL地址

wd.current_url

1.4 示例

访问百度,获取当前窗口大小并调整,获取当前窗口的标题和URL

rom selenium import webdriver
import time

# 创建Webdriver对象,指明使用Chromedriver,运行Chrome浏览器
wd = webdriver.Chrome()
wd.implicitly_wait(5)

# 调用Webdriver对象的get方法,打开网址
wd.get('https://www.baidu.com/')

# 获取窗口大小
print(wd.get_window_size())

# 改变窗口大小
wd.set_window_size('2046', '1024')

# 获取窗口标题
print(wd.title)

# 获取窗口URL
print(wd.current_url)

# 等待3秒
time.sleep(3)

# 关闭浏览器
wd.quit()

2 截屏

wd.get_screenshot_as_file('1.png')

3 手机模式

通过desired_capabilities 参数,指定以手机模式打开Chrome浏览器。

from selenium import webdriver
from time import sleep

# {'deviceName': '必须与谷歌浏览器的值一致'},如:Nexus 5"
mobile_emulation = { "deviceName": "iPhone 8" } 

chrome_options = webdriver.ChromeOptions()

chrome_options.add_experimental_option("mobileEmulation", mobile_emulation)

driver = webdriver.Chrome( desired_capabilities = chrome_options.to_capabilities())

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

# 等待3秒
sleep(3)

# 关闭浏览器
driver.quit()

4 上传文件

4.1 存在file类型的input元素

通常,网站页面上传文件的功能,是通过type属性为file的 HTML input元素实现的。如著名的在线图片压缩网站: https://tinypng.com/

<input type="file" multiple="multiple">

使用selenium自动化上传文件,我们只需要定位到该input元素,然后通过send_keys 法传入要上传的文件路径即可。如果需要上传多个文件,可以多次调用send_keys。
示例:在https://tinypng.com/中上传多张图片。

from selenium import webdriver
from time import sleep

wd = webdriver.Chrome()
wd.implicitly_wait(5)

# 调用Webdriver对象的get方法,打开网址
wd.get('https://tinypng.com/')


# 定位input元素
upload = wd.find_element_by_css_selector('input[type="file"]')

# 上传文件
upload.send_keys(r'D:\TinyPng1.png')
upload.send_keys(r'D:\TinyPng2.png')

# 等待3秒
sleep(3)

# 关闭浏览器
wd.quit()

4.2 不存在file类型的input元素

对于没有file类型的input元素的网页上传,如果是Windows上的自动化,可以采用 Windows平台专用的方法:
执行

pip install pypiwin32

确保pywin32已经安装,然后参考如下示例代码:

# 找到点击上传的元素,点击
wd.find_element(By.CSS_SELECTOR, '.dropzone').click()

# 等待上传选择文件对话框打开
sleep(2) 

# 直接发送键盘消息给当前应用程序,
# 前提是浏览器必须是当前应用
import win32com.client
shell = win32com.client.Dispatch("WScript.Shell")

# 输入文件路径,最后的'\n',表示回车确定,也可能时 '\r' 或者 '\r\n'
shell.Sendkeys(r"h:\a2.png" + '\n')

# 等待上传
sleep(1)

5 自动化Edge浏览器

自动化基于Chromium内核的微软最新Edge浏览器

  1. 查看Edge的版本: 点击菜单>帮助和反馈>关于Microsoft Edge,在弹出界面中,查看到版本。
  2. 下载对应版本的驱动:Edge Driver
  3. 自动化代码中指定使用Edge Webdriver类
    3.1 若将Edge Driver放在指定目录里,需指定Edge驱动路径。
    3.2 若将Edge Driver放到python的安装目录下,无需指定Edge驱动路径,但需要将Edge Driver重新命名成MicrosoftWebDriver.exe
from selenium import webdriver
from time import sleep

# 方法一:将Edge Driver放在指定目录里
wd = webdriver.Edge(r'D:\msedgedriver.exe')
# 方法二:将Edge Driver放到python的安装目录下
wd = webdriver.Edge()

# 调用Webdriver对象的get方法,打开网址
wd.get('https://www.baidu.com/')

# 等待3秒
sleep(3)

# 关闭浏览器
wd.quit()
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:56:38  更:2022-03-15 22:56:42 
 
开发: 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年11日历 -2024/11/18 0:44:03-

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