做公益网站赚钱吗,wordpress 删除侧边栏,网站建设推广浩森宇特,网页设计版权代码元素定位是 UI 自动化测试中最关键的一步#xff0c;假如没有定位到元素#xff0c;也就无法完成对页面的操作。那么在页面中如何定位到想要的元素#xff0c;本小节讨论 Appium 元素定位方式。
Appium的元素定位方式
定位页面的元素有很多方式#xff0c;比如可以通过 I…元素定位是 UI 自动化测试中最关键的一步假如没有定位到元素也就无法完成对页面的操作。那么在页面中如何定位到想要的元素本小节讨论 Appium 元素定位方式。
Appium的元素定位方式
定位页面的元素有很多方式比如可以通过 ID、accessibility_id、XPath 等方式进行元素定位还可以使用 Android、iOS 工作引擎里面提供的定位方式。 隐式等待
设置隐式等待后可以在规定的时间之内去动态的等待元素出现。
假如设置了隐式等待时长为 10 秒会在 10 秒之内不停的查找元素如果第 2 秒就找到了元素就继续执行后面的测试代码如果超出了设置时间则抛出异常。
一旦设置了隐式等待则它会存在整个 WebDriver 对象实例的生命周期中比如每次调用 find_element 或者 find_elements 方法的时候会自动触发隐式等待。
隐式等待比强制等待更加智能后者只能选择一个固定的时间等待前者可以在一个时间范围内智能的等待。代码示范
Python 版本
...
self.driver webdriver.Remote(server, desired_caps)
self.driver.implicitly_wait(15)
...
Java 版本
...
driver new AndroidDriver(remoteUrl, desiredCapabilities);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
...
Appium 的 log 中能发现以下的情况注意下面的 xx 和 xxy 是对 ID 的简写
[W3C] Matched W3C error code no such element to NoSuchElementError
[BaseDriver] Waited for 1495 ms so far
[WD Proxy] Matched /element to command name findElement
……
[W3C] Matched W3C error code no such element to NoSuchElementError
[BaseDriver] Waited for 2707 ms so far
[WD Proxy] Matched /element to command name findElement
……
[HTTP] -- POST /wd/hub/session/xx/element 200 6653 ms - 137
[HTTP]
[HTTP] -- POST /wd/hub/session/xx/element/xxy/click
[HTTP] {id:xxy}
从日志上可以看出来Appium 在进行元素查找的时候失败后不会直接抛出异常停止脚本执行而是每过一段时间去找一次元素。上面的例子所示在 6.7 秒左右等到了元素的返回此时结束等待去执行点击操作。
最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你