首页 > 其他分享 >selenium框架学习之获取文本框内容和Xpath元素不唯一

selenium框架学习之获取文本框内容和Xpath元素不唯一

时间:2024-06-21 09:59:00浏览次数:25  
标签:Xpath get selenium number 文本框 用例 wechat value div

本周一直写创建简历的测试用例,由于元素和内容过多,只能把各个方法单独封装,然后在测试用例里面使用,以此优化用例。

在封装的时候遇到的一些问题,和大家说下怎么解决~

1.  获取文本框输入---新增了一个【输入微信号】的功能模块,需要同时测试点击【同手机】和输入文本的功能。于是我在这里封装了两个方法。

2.第一个方法是点击【同手机】的方法,由于点击后还要断言是否和手机号一致,所以需要获取点击后的文本。

在点击之后,直接定位文本框的xpath元素(会比较稳定),然后使用 get_attribute('value')方法就可以直接获取该文本啦。

get_attribute('value')---十分适合获取文本框的内容,这个方法真的很好用,大家需要断言文本框的内容都可以直接用这个方法

最后使用判断语句来确定是否输入成功以及输入是否和手机号一致

因为手机号中间的4位数被隐藏了,所以直接判断前3位和后4位的数字就可以啦

    def wechat_same_as_phone(self):
        """填写微信,点击同手机"""
        # 点击【同手机】
        driver.find_element(By.XPATH,
                            '//*[@id="__layout"]/div/div/div[2]/div/div[2]/form/div[4]/div[2]/div/div/div/span').click()
        sleep(2)
        # 确认是否已填入微信号
        wechat = driver.find_element(By.XPATH, '//*[@id="__layout"]/div/div/div[2]/div/div[2]/form/div[4]/div[2]/div/div/div/div/input').get_attribute('value')
        phone_number = driver.find_element(By.XPATH,
                                           '//*[@id="__layout"]/div/div/div[2]/div/div[2]/form/div[4]/div[1]/div/div/span/span/div/input').get_attribute(
            'value')
        if phone_number[0:3] == wechat[0:3] and phone_number[-4:] == wechat[-4:]:
            print('测试通过')
        else:
            print('测试失败')

3. 输入微信号的封装方法就相对简单很多,只需断言即可。这里也是使用了get_attribute('value')方法获取输入后的文本内容

    def input_wechat(self, number):
        """输入微信号"""
        wechat = driver.find_element(By.XPATH, '//*[@id="__layout"]/div/div/div[2]/div/div[2]/form/div[4]/div[2]/div/div/div/div/input')
        wechat.send_keys(number)  # 输入微信号
        wechat_text = driver.find_element(By.XPATH, '//*[@id="__layout"]/div/div/div[2]/div/div[2]/form/div[4]/div[2]/div/div/div/div/input').get_attribute('value')  # 获取已输入的内容
        except_text = number
        self.assertEqual(except_text, wechat_text)

4.在定位同一个元素时发现了一个问题,在用例1是测试通过的,但是在用例2测试失败,这个问题让我困扰了很久,于是我在用例2运行时,直接copy了该元素的xpath路径。

对比一看,发现是div数字有变化。因为用例2比用例1多了1个元素,所以div数字也变了,相当于同一个元素有两个xpath。经过不断的调试,发现直接使用last()函数就可以解决了。

后续的一些元素我都更换为last()函数了,这样用例运行起来也会更流畅,以及维护成本也比较低

标签:Xpath,get,selenium,number,文本框,用例,wechat,value,div
From: https://blog.csdn.net/m0_72024078/article/details/139849048

相关文章

  • 三、浅谈 Selenium
    1.Selenium简介:Selenium是一款免费的、开源的、基于Web页面的UI自动化测试工具,可以支持多个浏览器。 2.Selenium框架由多个工具组成:SeleniumIDE、SeleniumRC、SeleniumWebDriver、SeleniumGrid(2.1)SeleniumIDE:通过录制操作完成基本脚本构建的工具;(2.2......
  • Selenium如何实现拼多多自动抢红包
    使用Selenium来实现拼多多自动抢红包涉及以下几个步骤:安装必要的工具和库:安装Selenium库:可以使用pip进行安装。安装浏览器驱动程序:例如ChromeDriver,如果你使用的是Chrome浏览器。pipinstallselenium设置Selenium和浏览器驱动:下载并配置浏览器驱动程序。设置SeleniumW......
  • SpringBoot+Selenium模拟用户操作浏览器
    SeleniumSelenium是一个用于Web应用程序自动化测试的开源工具套件。它主要用于以下目的:浏览器自动化:Selenium能够模拟真实用户在不同浏览器(如Chrome、Firefox、IE/Edge等)中的交互行为,通过编程方式控制浏览器执行一系列操作,例如点击按钮、填写表单、导航页面等。兼容性测试:通过......
  • python中selenium封装
    fromseleniumimportwebdriverimporttimeclasscms(object):a=webdriver.Chrome()definit(self):self.a.get("http://192.168.193.135:8080/cms/manage/login.do")time.sleep(2)self.a.find_element_by_name("userAccount").send_keys(&quo......
  • 用Xpath制作简单爬虫工具,获取神奇宝贝百科的精灵信息
    最近开始学习Python的爬虫应用,个人比较喜欢用Xpath的方式来爬取数据,今天就结合一下Xpath方式,以“神奇宝贝百科”为素材,制作一个爬取每只宝可梦数据的工程项目准备工作神奇宝贝百科地址:https://wiki.52poke.com/wiki/主页工程项目的目标是,获取每只精灵的名字、编号、属性、特性......
  • 用Xpath制作简单的爬取网页工具,获取神奇宝贝百科每只精灵的信息
    最近开始学习Python的爬虫应用,个人比较喜欢用Xpath的方式来爬取数据,今天就结合一下Xpath方式,以“神奇宝贝百科”为素材,制作一个爬取每只宝可梦数据的工程项目准备工作神奇宝贝百科地址:https://wiki.52poke.com/wiki/主页工程项目的目标是,获取每只精灵的名字、编号、属性、特性......
  • selenium常用元素定位方式
    selenium中的定位方式:1、id:根据id来获取元素;2、name:根据元素的name属性定位;3、tagName:根据元素的标签名定位;4、className:根据元素的样式class值定位;5、linkText:根据超链接的文本值定位;6、partialLinkText:根据超链接的部分文本值定位;7、cssSelector:css选择器定位;8、xpath:通......
  • 使用Selenium进行元素定位的全面指南
    使用Selenium进行元素定位的全面指南引言Selenium是一个广泛使用的开源工具,用于自动化Web浏览器的操作。无论你是进行自动化测试,还是需要抓取网页数据,Selenium都是一个非常有用的工具。而在Selenium中,定位网页元素是自动化操作的核心。本文将详细介绍Selenium中各种定位......
  • xpath使用contains文本定位不到元素的原因及解决方法
    某些情况下,前端开发可能出现如下的代码<uni-viewdata-v-fc36b70f=""class="letter_city_item">"波特兰;"<spandata-v-fc36b70f=""class="gray">PDX</span></uni-view><uni-viewdata-v-fc36b70f=&quo......
  • Selenium的三种等待方式
    目录Selenium的三种等待方式1、强制等待2、隐式等待3、显性等待Selenium的三种等待方式        什么是等待机制?    等待就是当系统运行时,如果页面渲染的速度跟不上程序执行的速度,这时就需要人为的去限制计算机的执行速度。例如在WebUI自动化测试的时......