元素定位及其他操作
1、find_element_by 方法适用于定位页面元素,返回的是匹配的第一个元素
1、driver.find_element_by_id()//通过元素id识别
2、driver.find_element_by_name()//通过元素命名
3、driver.find_element_by_class_name()//通过元素类的名称识别
4、driver.find_element_by_tag_name()
//通过元素tag name,tag name 定位应该是所有定位方式中最不靠谱的一种了,
因为在一个页面中具有相同 tag name 的元
素极其容易出现
5、driver.find_element_by_link_text()
6、driver.find_element_by_partial_link_text()
//通过文字链接进行定位,当文字链接很长时,我们可以只取其中的一部分,只有取的部分可以唯一标识元素。
一般一个页面上不会出现相同的文件链接,通过文字链接来定位元素也是一种简单有效的定位方法。
7、driver.find_element_by_xpath()
8、driver.find_element_by_css_selector()
web自动化测试元素识别的原则:
如果有唯一的id,就用id定位元素;
如果没有,最好使用xpath;
如果xpath定位失败,视情况而定。
2、find_elements_by 方法能按照一定的标准返回一组元素
方法 | 描述 | 参数 | 示例 |
find_elements_by_id(id_) | 通过元素的id属性值来定位一组元素 | id_:元素的ID | driver.find_elements_by_id('product') |
find_elements_by_name(name) | 通过元素的那么属性值来定位一组元素 | name:元素的name | driver.find_elements_by_name('q') |
find_elements_by_class_name(name) | 通过元素的class名来定位一组元素 | name:元素的类名 | driver.find_elements_by_class_ name('foo') |
find_elements_by_tag_name(name) | 通过元素的tag name来定位一组元素 | name:tag name | driver.find_elements_by_tag_name('a') |
find_elements_by_xpath(xpath) | 通过xpath来定位一组元素 | xpath:元素的xpath | driver.find_elements_by_xpath( '//div[contains(@class)]') |
find_elements_by_css_selector(css_selector) | 通过css选择器来定位一组元素 | css_selector:元素的css选择器 | driver.find_elements_by_css_ selector('.a_class') |
find_elements_by_link_text(text) | 通过元素标签之间的文本信息来定位一组元素 | text:文本信息 | driver.find_elements_by_text('Log in') |
find_elements_by_partial_link_text(link_text) | 通过元素标签之间的部分文本信息来定位一组元素 | link_text:部分文本信息 | driver.find_elements_by_partial_ link_text('Add to') |
文档参考