template获取session中的信息_selenium自动化测试中的属性信息获取

我们再做UI自动化过程中经常要获取一些属性信息,用来验证我们的自动化case是否通过,那么一般会用到哪些呢?1、driver.title获取title信息title信息一般就是在我们页面代码中的html的head中有个title标签,如下图:

11bf48444a77596b7cd0f3d1d35b63fa.png

那么代码如何实现呢?

  1. from selenium import webdriver
  2. import time
  3. driver = webdriver.Chrome()
  4. driver.get('http://www.bcbxhome.com')
  5. time.sleep(1)
  6. title = driver.title
  7. print(title)

复制代码2、driver.current_url获取当前的url地址比如我们通过跑自动化形式在自动打开页面,如果我们想要验证我们打开页面的url是否正确,就需要用到driver.current_url获取当前的url地址

  1. from selenium import webdriver
  2. import time
  3. driver = webdriver.Chrome()
  4. driver.get('http://www.bcbxhome.com')
  5. time.sleep(1)
  6. url = driver.current_url
  7. print(url)

复制代码3、通过get_attribute获取某个控件的属性值

6b86e08201b39c4fbf414d0850885d05.png

比如我们通过id定位到了这个input后,我想获取这个控件的value属性值,那么怎么获取呢?

  1. from selenium import webdriver
  2. import time
  3. driver = webdriver.Chrome()
  4. driver.get('http://www.bcbxhome.com')
  5. time.sleep(1)
  6. driver.find_element_by_id("scbar_txt").get_attribute("value")

复制代码4、通过text方法获取控件上的文案信息

6326df402c60595b525e77ddd67b9123.png

比如我要获取编测编学学院控件上的文字信息,那么我们可以先定位到它,然后再通过.text获取到它上边的文字内容:

  1. from selenium import webdriver
  2. import time
  3. driver = webdriver.Chrome()
  4. driver.get('http://www.bcbxhome.com')
  5. time.sleep(1)
  6. print(driver.find_element_by_xpath("//div[@class='bm_h cl'][1]/h2/a").text)

复制代码5、通过.is_displayed()方法获取控件是否已经加载出来因为我们要去操作一个控件就得等这个控件完全加载出来才可以对它操作,所以我们就需要通过.is_displayed()方法判断下控件是否显示出来.is_displayed方法的源码如下:

  1. # RenderedWebElement Items
  2. def is_displayed(self):
  3. """Whether the element is visible to a user."""
  4. # Only go into this conditional for browsers that don't use the atom themselves
  5. if self._w3c:
  6. return self.parent.execute_script(
  7. "return (%s).apply(null, arguments);" % isDisplayed_js,
  8. self)
  9. else:
  10. return self._execute(Command.IS_ELEMENT_DISPLAYED)['value']

复制代码其实通过源码我们可以看出来.is_displayed返回的是一个boolean值,如果控件已经加载出来了,那么它返回的是TRUE,如果控件未加载出来返回的就是FALSE。

  1. from selenium import webdriver
  2. import time
  3. driver = webdriver.Chrome()
  4. driver.get('http://www.bcbxhome.com')
  5. time.sleep(1)
  6. print(driver.find_element_by_xpath("//div[@class='bm_h cl'][1]/h2/a").is_displayed())

复制代码6、通过.size方法获取控件的尺寸讲此方法之前我们先看下.size方法的源码,如下:

  1. @property
  2. def size(self):
  3. """The size of the element."""
  4. size = {}
  5. if self._w3c:
  6. size = self._execute(Command.GET_ELEMENT_RECT)['value']
  7. else:
  8. size = self._execute(Command.GET_ELEMENT_SIZE)['value']
  9. new_size = {"height": size["height"],
  10. "width": size["width"]}
  11. return new_size

复制代码通过源码很清晰的就可以看出来它获取的是控件的宽和高。那么如何实现呢?

  1. from selenium import webdriver
  2. import time
  3. driver = webdriver.Chrome()
  4. driver.get('http://www.bcbxhome.com')
  5. time.sleep(1)
  6. aa = driver.find_element_by_xpath("//div[@class='bm_h cl'][1]/h2/a").size
  7. print(aa)

复制代码运行代码后,我们看下返回的尺寸是怎么样的呢?

efc7b3067d403867e06ae31e1d831d13.png

通过返回内容其实我们可以知道它返回的是一个字典,那么怎么获取单独的height或者width呢?

  1. print(aa['height'])
  2. print(aa['width'])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值