selenium主要由三个工具组成:WebDriver、IDE、Grid。WebDriver 使用浏览器提供的 api 来控制浏览器,就像用户在 *** 作浏览器,不具有侵入性。 IDE 是 Chrome 和 Firefox 扩展插件,可以录制用户在浏览器中的 *** 作。Grid 用于 Selenium分布式,你可以在多个浏览器和 *** 作系统运行测试用例。
环境/工具准备- java环境
- selenium-server-standalone-3.7.1.jar
- mumu模拟器
- Appium Desktop V1.15.1
- node.js环境
下载地址: http://selenium-release.storage.googleapis.com/index.html
这里以selenium-server-standalone-3.7.1.jar为例
启动服务下载完成之后,就启动服务(启动服务之前,需要有java环境),在jar所在路径下执行一下的命令:
java -jar selenium-server-standalone-3.7.1.jar -role hub
# -role参数表示指定当前角色是为hub
在浏览器输入以下链接:
http://127.0.0.1:4444/grid/console
注册node
注册node之前需要先获取模拟器的相关信息
(1)连接模拟器
adb connect 127.0.0.1:7555
(2)查看设备
adb devices
由以下图可以得到mumu模拟器的地址和端口号
(3)新建main.json
在json中的配置即为node注册到hub所需要的信息,main.json内容如下:
{
"capabilities":
[
{
"deviceName": "127.0.0.1:7555",
"version":"6.0",
"maxInstances": 3,
"platform":"ANDROID",
"browserName": ""
}
],
"configuration":
{
"cleanUpCycle":2000,
"timeout":30000,
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"hub":"127.0.0.1:4444/grid/register",
"url":"http://127.0.0.1:4723/wd/hub",
"host": "127.0.0.1",
"port": 4723,
"maxSession": 3,
"register": true,
"registerCycle": 5000,
"hubPort": 4444,
"hubHost": "127.0.0.1",
"hubProtocol": "http"
}
}
安装node.js
如果本地有node.js环境的话,可以忽略,没有的话需要先安装node.js
node.js下载地址:
https://nodejs.org/en/download/releases/
推荐下载Node.js版本12.x(windows: msi文件,mac: pkg )
执行main.json进入到Appium的js启动脚本路径,我的路径为
C:\Users\Acer\AppData\Local\Programs\Appium\resources\app\node_modules\appium\build\lib,通过执行如下Appium启动指令:
node main.js -a 127.0.0.1 -p 4723 -bp 4725 -U 127.0.0.1:7555 --nodeconfig F:\main.json
# -a 127.0.0.1是appium服务的地址
# -p 4723是appium的端口号
# -U 127.0.0.1:7555是mumu模拟器的udid
#--nodeconfig F:\main.json 这个是配置文件所在的目录
执行脚本
#在雪球app *** 作以下的内容
from appium import webdriver
desire_cap ={
"platformName": "android",
"deviceName": "127.0.0.1:7555",
"appPackage": "com.xueqiu.android",
#雪球首页
"appActivity": ".view.WelcomeActivityAlias",
#屏蔽d框
"noReset": "true",
"browserName": ""
}
#获取驱动,创建链接
# driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desire_cap)
driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',desired_capabilities=desire_cap)
driver.implicitly_wait(10)
#点击搜索
el2 = driver.find_element_by_id("com.xueqiu.android:id/tv_search")
el2.click()
#输入alibaba
el3 = driver.find_element_by_id("com.xueqiu.android:id/search_input_text")
el3.send_keys("alibaba")
#点击搜索
el4 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.FrameLayout/android.widget.LinearLayout/androidx.recyclerview.widget.RecyclerView/android.widget.RelativeLayout[1]/android.widget.LinearLayout/android.widget.TextView[1]")
el4.click()
print("搜索成功")
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)