appium 切换native/ webview,findby,还有页面元素定位一直小于0的问题的解决

之前一直有个bug没有解决。

今天,终于解决了。

疑问过程:

app是混合应用,项目做了H5优化之后,以前的用例执行总会失败,体现在原来的一个元素点击无反馈

排查原因:1.项目做了H5优化,2.测试的代码也做了优化

  2.项目的代码更改之后,用原有的findby查找元素,元素的定位一直是小于0,不会变

  3.findby是在初始化的时候填入的元素控件信息,后续如果不刷新可能根本就不会更改定位。

解决办法:将元素的定位改变后,getPageSource一下,重新获取控件信息。

		while (loginButton.getLocation().x<0) {
			System.out.println(loginButton.getLocation().x);
			driver.getPageSource();
			Thread.sleep(3000);
		}

tips:如果是native控件,在chrome的inspect中可以抓取到,但是还是不能操作的。

原文地址:https://www.cnblogs.com/zhizhiyin/p/9140998.html

时间: 2024-10-28 20:20:42

appium 切换native/ webview,findby,还有页面元素定位一直小于0的问题的解决的相关文章

java selenium webdriver实战 页面元素定位

自动化测试实施过程中,测试程序中常用的页面操作有三个步骤 1.定位网页上的页面元素,并存储到一个变量中 2.对变量中存储的页面元素进行操作,单击,下拉或者输入文字等 3.设定页面元素的操作值,比如,选择下拉列表中的那个下拉列表或者输入框中输入什么值 其中定位页面元素是三步骤的第一步,本篇介绍常用的定位方法 webDriver对象的findElement函数用于定位一个页面元素,findElements函数用户定位多个页面元素,定位的页面元素使用webElement对象进行存储 常用的方法有: 1

【前端经纬】将页面元素定位

最近在做公司的项目的手,遇到了要是 html页面元素定位的问题. 查阅了相关资料,这里 Mark.  1)可以使用 css的position属性实现该功能. 2)代码实现如下(可以运行 http://www.w3school.com.cn/tiy/t.asp?f=csse_position_absolute): <html> <head> <style type="text/css"> h2.pos_abs { position:absolute;

Robot Framework 教程 (2) - 页面元素定位

上一篇文章中,简单模拟了一个baidu搜索并截图的过程,在搜索过程中,我们需要对搜索框.搜索按钮进行定位.本篇文章主要介绍一下具体的定位方法. 我们的脚本如下: *** Settings *** Library Selenium2Library *** Test Cases *** firefox兼容性 Open Browser https://www.baidu.com/ ff Input Text id=kw LeetTest Click button id=su Sleep 2 Captu

【selenium学习笔记】webdriver进行页面元素定位

[selenium学习笔记]webdriver进行页面元素定位 进行Web页面自动化测试,对页面上的元素进行定位和操作是核心.而操作又是以定位为前提的,因此,对页面元素的定位是进行自动化测试的基础. 页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元素属性(class属性,name属性)等等.webdriver就是利用元素的这些属性来进行定位的. 可以用于定位的常用的元素属性: id name class name tag name link text partial link te

Python3.x:Selenium中的webdriver进行页面元素定位

Python3.x:Selenium中的webdriver进行页面元素定位 页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元素属性(class属性,name属性)等等.webdriver就是利用元素的这些属性来进行定位的. 可以用于定位的常用的元素属性: id name class name tag name link text partial link text xpath css selector 对应于webdriver中的定位一个元素方法分别是: driver.find_e

UI自动化页面元素定位

做ui自动化的最基础的就是页面元素定位了,如果连页面元素都定位不到,自动化从何谈起呢?接下来我们就看看页面元素定位的方法吧!(这里就用百度页面来进行演示) 一.最通用的几种定位方式: 1.通过id定位 1 driver.find_element_by_id('su') 2.通过name定位 driver.find_element_by_name('mp') 3.通过class属性 driver.find_element_by_class_name('s_ipt') 4.通过文本链接 driver

Selenium with Python 003 - 页面元素定位

WebUI自动化,首先需要定位页面中待操作的元素,然后进行各种事件操作,这里我们首先介绍Selenium Python 如何定位页面元素,WebDriver 提供了一系列的方法. 定位单个页面元素(返回单个元素对象) find_element_by_id find_element_by_name find_element_by_xpath find_element_by_link_text find_element_by_partial_link_text find_element_by_tag

基于C#的Appium自动化测试框架(Ⅱ):Android元素定位

我们知道,Appium的原理上是通过RemoteWebDriver提供了元素定位功能,再根据定位后的元素进行操作,比如: protected static RemoteWebDriver CalculatorSession; CalculatorSession.FindElementByName("One").Click(); 工作的重点就是定位到对应的元素,Appiuim提供了很多用来定位元素的方法,具体包括: FindElement(By by); FindElementByCla

selenium 页面元素定位之iframe里面的元素定位(包括有无id、name的)

今天在写一个功能的脚本时,发现部分部分元素总是定位不了,看了下页面的html 发现元素原来在iframe里,这个使用iframe的id和name属性用switch_to_frame跳转后就可以定位了,但是发现部分iframe没有id 和 name,突然不知怎搞了,百度了下,发现下面这个文章不错! -------------------------以下转自:http://blog.sina.com.cn/s/blog_68f262210101mcxp.html 最近正在进行webdriver的we