appium+selenium自动化测试UI踩坑记录之--判断元素是否存在

摘要:
1.为了确定应用程序元素是否存在,之前使用的代码如下。然而,页面跳转后,使用xpath查找信息可以找到跳转前页面的内容,导致信息判断不准确。

1.判断应用程序元素是否存在,之前使用的代码如下,但是页面跳转后,通过xpath查找信息能查找到跳转前页面的内容,造成信息判断不准确。

    def isElementPresent(self, driver, xpath):
        # 从selenium.common.exceptions 模块导入 NoSuchElementException类
        from selenium.common.exceptions import NoSuchElementException
        try:
            element = driver.find_element_by_xpath(xpath)
        # 原文是except NoSuchElementException, e:
        except NoSuchElementException as e:
            # 打印异常信息
            print(e)
            # 发生了NoSuchElementException异常,说明页面中未找到该元素,返回False
            return False
        else:
            # 没有发生异常,表示在页面中找到了该元素,返回True
            return True

于是更换判断方法,如下:  如果点击元素判断元素是否报错,判断页面跳转成功

 1 @allure.step("判断元素是否可以点击")
 2     def isElementCanClick(self, xpath, driver):
 3         # 判断页面
 4         flag = False
 5         try:
 6             driver.find_element_by_xpath(xpath).click()
 7             flag = True
 8             return flag
 9         except:
10             return flag

 问题重现

通过driver.page_source 查看可以取到的元素,再结合xpath检验

免责声明:文章转载自《appium+selenium自动化测试UI踩坑记录之--判断元素是否存在》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇EasyUI 的 formatter事件的函数的使用TCP连接的建立和关闭下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

用XPath定位Web页面元素时,如何快速验证XPath语句是否正确?

在使用Selenium做Web UI自动化测试的过程中,XPath是一种定位页面元素的常用方式。然而,面对某些元素的XPath路径过于复杂,我们想快速验证拼凑的Xpath语句是否正确时,该怎么办呢?这里给大家提供一个简单的解决方法。 下面以百度页面举例,定位"百度一下"按钮。打开浏览器中的开发者工具(F12),在Console栏中按以下格式输入,其中括号中...

selenim之ActionChains 用法

常见的点击方法集锦: 参数: 1.driver是我们的浏览器 2.Actions是我们系统内置的执行鼠标一系列操作的对象 鼠标左击:Actions actions=new Actions(driver); actions.click(这里传入我们需要点击的控件元素,WebElement类型).perform();...

JS中常用的xpath特性

//选择所有dir元素的值等于xx的元素    Dom.documentElement.selectNodes("server/dir[text()='xx']")       //选择server元素下的所有dir元素:    Dom.documentElement.selectNodes("server/dir")       //选择server元素...

Java解析复杂xml文件,使用Xpath

Java解析复杂xml文件,需要使用到xpath,首先使用了Jdom2。代码示例如下: public static Document GetFileFromLocal(String filename){ try { FileInputStream stream=new FileInputStream(String.format("d:/x下载/%s.xm...

Selenium---元素定位之CSS定位

CSS 选择器: 常见符号: #表示 id选择器 .表示 class选择器 >表示子元素,层级 一个空格也表示子元素,但是是所有的后代子元素,相当于 xpath 中的相对路径 一、css:属性定位 1.css可以通过元素的id、class、标签这三个常规属性直接定位到 2.如下是百度输入框的的html代码: <input type="text"...

xpath定位大全

//查找所有的”B” var xpath=”//B”; //查找所有元素 xpath = “//*”; // 选择所有路径依附于/A/B/的元素 xpath =”/A/B/*”; //选择所有的有3个祖先元素的B元素 xpath =”///*/B” ; // 选择所有父元素是DDD的BBB元素 xpath=”//C/D”; // 选择A/B/C的第一个E子...