龙空技术网

selenium自动化测试中的属性信息获取

软件测试架构师刀锋 68

前言:

当前姐妹们对“js获取控件的属性”大体比较珍视,看官们都需要学习一些“js获取控件的属性”的相关内容。那么小编在网上搜集了一些有关“js获取控件的属性””的相关资讯,希望我们能喜欢,同学们快快来学习一下吧!

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

那么代码如何实现呢?

from selenium import webdriverimport time

driver = webdriver.Chrome()driver.get(';)time.sleep(1)title = driver.titleprint(title)

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

from selenium import webdriverimport time

driver = webdriver.Chrome()driver.get(';)time.sleep(1)url = driver.current_urlprint(url)

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

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

from selenium import webdriverimport time

driver = webdriver.Chrome()driver.get(';)time.sleep(1)driver.find_element_by_id("scbar_txt").get_attribute("value")

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

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

from selenium import webdriverimport time

driver = webdriver.Chrome()driver.get(';)time.sleep(1)print(driver.find_element_by_xpath("//div[@class='bm_h cl'][1]/h2/a").text)

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

# RenderedWebElement Itemsdef is_displayed(self):"""Whether the element is visible to a user."""# Only go into this conditional for browsers that don't use the atom themselvesif self._w3c:return self.parent.execute_script("return (%s).apply(null, arguments);" % isDisplayed_js,self)else:return self._execute(Command.IS_ELEMENT_DISPLAYED)['value']

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

from selenium import webdriverimport time

driver = webdriver.Chrome()driver.get(';)time.sleep(1)print(driver.find_element_by_xpath("//div[@class='bm_h cl'][1]/h2/a").is_displayed())

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

@propertydef size(self):"""The size of the element."""size = {}if self._w3c:size = self._execute(Command.GET_ELEMENT_RECT)['value']else:size = self._execute(Command.GET_ELEMENT_SIZE)['value']new_size = {"height": size["height"],"width": size["width"]}return new_size

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

from selenium import webdriverimport time

driver = webdriver.Chrome()driver.get(';)time.sleep(1)aa = driver.find_element_by_xpath("//div[@class='bm_h cl'][1]/h2/a").sizeprint(aa)

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

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

print(aa['height'])print(aa['width'])

标签: #js获取控件的属性