Selenium 测试 Electron 应用

这篇具有很好参考价值的文章主要介绍了Selenium 测试 Electron 应用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Electron 介绍
Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript代码代码库并创建 在Windows、macOS和Linux上运行的跨平台应用。

• 有哪些应用
Selenium 测试 Electron 应用,自动化测试,软件测试,技术分享,selenium,electron,测试工具

有许多我们常见的桌面应用,比如 postman/apifox、slack、VSCode/Atom、Trello、appium-desktop、github-desktop等,都是基于 electron 构建的。

selenium 测试 Electron 应用
使用过appium-desktop的同学,应该发现,在应用上右键是可以打开 chrome devtools 工具的。如下图:
Selenium 测试 Electron 应用,自动化测试,软件测试,技术分享,selenium,electron,测试工具

我们以此应用为例,使用 selenium 测试 electron 应用。

from selenium import webdriver
from time import sleep

options = webdriver.ChromeOptions()
options.binary_location = f"C:\Program Files\Appium Server GUI\Appium Server GUI.exe"
driver = webdriver.Chrome(options=options)
sleep(5)

通过ChromeOptions 的 binary_location选项指定 appium-desktp 的安装位置,这样就可以启动 appium-desktop 了。

大概率会遇到下面的报错:

Current browser version is 85.0.4183.121 with binary path C:\Program Files\Appium Server GUI\Appium Server GUI.exe

electron应用内嵌 Chromium 版本比较旧,需要指定 ChromeDriver 驱动。手动下载 一个版本号是 85.0.4183.xx的驱动文件,放到环境变量 PATH 中指定目录下即可。新的selenium会优先使用配置的驱动文件,如果找不到会自行下载。

接下来,你操作web页面一样,操作electron应用。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep

options = webdriver.ChromeOptions()
# options.add_argument('--disable-gpu')
options.binary_location = f"C:\Program Files\Appium Server GUI\Appium Server GUI.exe"
driver = webdriver.Chrome(options=options)
sleep(5)

# 切换句柄
all_handles = driver.window_handles
driver.switch_to.window(all_handles[0])
# 清理输入框&重新输入
host_input = driver.find_element("id", "simpleHostInput")
host_input.send_keys(Keys.CONTROL, "a")
host_input.send_keys(Keys.DELETE)
host_input.send_keys("127.0.0.1")

post_input = driver.find_element("id", "simplePortInput")
post_input.send_keys(Keys.CONTROL, "a")
post_input.send_keys(Keys.DELETE)
post_input.send_keys("4724")

driver.find_element("id", "startServerBtn").click()

sleep(5)
driver.quit()

说明:

electron 应用启动后可能存在多窗口的情况,所以需要切换句柄,默认切换到第一个句柄即可。

输入框无法通过clear() 清空,可以使用键盘操作,Keys.CONTROL + Keys.A 选中所有,Keys.DELETE 删除。

最后
了解到 electron 技术是看到一些技术报道,QQ 使用electron进行了重写,Linux for QQ 再也不是上古界面了,electron的优势就是夸平台,缺点也很明显,启动速度慢,Web的页面体验总归比原生界面要差上许多。安装包比较大,一个Hello world应用大概需要 100M 左右,想想他内嵌了一个浏览器内核,怎么可能不大。当然,如果使用 electron-builder 打包,可以减小安装包大小。

并不是所有的 electron 应用都可以右键打开 chrome devtools,我一开始尝试apifox就不行,当然,可以通过driver.page_source 获取页面源码,然后分析元素,可以得到了一大坨编译压缩后的字符,有熟悉 electron 开发测试的小伙伴可以评论区提供思路。

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

Selenium 测试 Electron 应用,自动化测试,软件测试,技术分享,selenium,electron,测试工具

 视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。      文章来源地址https://www.toymoban.com/news/detail-793460.html

到了这里,关于Selenium 测试 Electron 应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 软件测试 自动化测试selenium API

    1.1.1 CSS 选择器定位元素 CSS 选择器 就是一个语法 浏览器 (ctrl + f)可以进行选择 类选择器:.class值(.s_ipt) id 选择器:#id值(#kw) 父类选择器 子类选择器:父类选择器表达式 子类选择器表达式 标签选择器:标签名(form) 1.1.2 XPath 定位元素 XPath 是一种在XML 文档中定位元

    2024年04月28日
    浏览(34)
  • 软件测试(五)自动化 selenium

    自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器(代码)执行的过程。(简单而言其实就是降低重复性的工作(大部分是Python)) 自动化测试的具体实现,应该是包含下

    2024年02月08日
    浏览(48)
  • 软件测试/测试开发丨Selenium Web自动化测试基本操作

    本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/26901 模拟功能测试中对浏览器的操作 get方法打开浏览器 refresh方法刷新页面 用back方法回退到上一个界面 maximize_window方法使窗口最大化 minimize_window方法使窗口最小化 标签: a 属性:href 类属性

    2024年02月10日
    浏览(40)
  • python+selenium自动化软件测试 :多线程

    运行多个线程同时运行几个不同的程序类似,但具有以下优点: 进程内共享多线程与主线程相同的数据空间,如果他们是独立的进程,可以共享信息或互相沟通更容易. 线程有时称为轻量级进程,他们并不需要多大的内存开销,他们关心的不是过程便宜. 一个线程都有一个开始

    2024年02月16日
    浏览(38)
  • 软件测试/测试开发丨Selenium Web自动化测试 高级控件交互方法

    本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/27045 使用场景 对应事件 复制粘贴 键盘事件 拖动元素到某个位置 鼠标事件 鼠标悬停 鼠标事件 滚动到某个元素 滚动事件 使用触控笔点击 触控笔事件(了解即可) https://www.selenium.dev/documentati

    2024年02月09日
    浏览(80)
  • 自动化测试工具Selenium的基本使用方法,软件测试基础

    browser.find_element(By.ID,‘kw’).send_keys(“美女”) browser.find_element_by_id(‘kw’).send_keys(‘性感’) 2.通过标签name属性进行定位 browser.find_element_by_name(“wd”).send_keys(“Linux”) browser.find_element(By.NAME,‘wd’).send_keys(“美女”) 3.通过标签名进行定位 browser.find_element_by_tag_name(“input”).

    2024年04月22日
    浏览(36)
  • 软件测试自动化Java篇【Selenium+Junit 5】

    为什么选择selenium作为我们的web自动化测试工具? 开源免费 支持多浏览器 支持多系统 支持多语言【Java,Python,C#,Rubby,JavaScript,Kolin】 selenium包提供了很多可供测试使用的API Chrome浏览器 Chrome驱动【驱动器版本要和浏览器版本对应越详细越好】 然后把驱动包放在安装jdk的

    2024年01月18日
    浏览(34)
  • 软件测试/测试开发丨Selenium Web自动化多浏览器处理

    本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/27185 用户使用的浏览器(firefox,chrome,IE 等) web 应用应该能在任何浏览器上正常的工作,这样能吸引更多的用户来使用 是跨不同浏览器组合验证网站或 web 应用程序功能的过程 是兼容性测试的一个

    2024年02月09日
    浏览(47)
  • 软件测试——功能测试,使用Java,IDEA,Selenium进行web自动化测试

    视频地址:03-web元素定位ID_哔哩哔哩_bilibili p1.下载jdk,maven,idea p2.配置java-selenium环境正式开始: (1)创建代码: (2)第一次运行会报错:要下载东西  (3) Windows系统的输入如下:  (4)完成如下:(这个用的是Linux系统的) p3:web元素定位ID (1)先改一下之前的代码  (

    2024年02月08日
    浏览(69)
  • 自动化测试:Selenium高级操作!,看完阿里P9大牛的“软件测试成长笔记”我悟了

    分享他们的经验,还会分享很多直播讲座和技术沙龙 可以免费学习!划重点!开源的!!! qq群号:110685036 Switch_to切换frame 如果元素在html的frame或iframe中,则无法直接定位到元素。需要先切换到该frame中,再进行定位及其他操作。 相关方法: driver.switch_to.frame(frame_reference)

    2024年04月25日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包