Selenium WebDriver API 学习笔记(一):元素定位

简介: Selenium WebDriver API 学习笔记(一):元素定位

读了虫师《Selenium 2自动化测试实战 基于Python语言》一书,感触颇深,内容非常丰富。现整理下来,供后续学习参考使用。本次主要整理的是元素定位的方式。

1. id定位

find_element_by_id();   

2. name定位

find_element_by_name();   

3. class属性定位

find_element_by_class_name();      

4. tag属性定位

find_element_by_tag_name();     

5. 元素标签之前的文本信息来定位

find_element_by_link_text();         

6. 取文本链接的一部分来定位

find_element_by_partial_link_text();      

7. xpath多种定位策略

find_element_by_xpath(); 

①绝对路径:

find_element_by_xpath("html/body/div[2]/div[2]/div[3]/div[2]/form/input[1]"); 

②元素属性:

find_element_by_xpath("//input[@id='qwe']"); 
find_element_by_xpath("//input[@name='qwe']"); 
find_element_by_xpath("//input[@class='qwe']");
find_element_by_xpath("//*[@id='qwe']"); 

③层级属性:

find_element_by_xpath("//span[@class='qwe']/input");
find_element_by_xpath("//form[@id='qwe']/span[2]/input");

④运算逻辑:

find_element_by_xpath("//input[@id='qwe' and @class='qwer']/span/input");

8. css选择器定位

find_element_by_css_selector();    

其中css也有多种策略:
①class属性:

find_element_by_css_selector(".qwe");

②id属性:
find_element_by_css_selector("#qwe");

③标签名:

find_element_by_css_selector("input");    

A.父子关系:

find_element_by_css_selector("span>input");

B.属性定位:

find_element_by_css_selector('[type="submit"]');

C.组合定位:

find_element_by_css_selector("form.fm>span>input>input.qwe");

9.BY元素定位

以上提到的8种定位方法,webdriver还提供了另一套写法,即统一调用find_element()方法,通过BY来声明定位的方法,并且传入对应定位方法的定位参数。
使用BY之前需要插入BY类:
from selenium.webdriver.common.by import By
find_element(BY.ID,"qwe");
find_element(BY.NAME,"qwe");
find_element(BY.CLASS_NAME,"qwe");
find_element(BY.TAG_NAME,"qwe");
find_element(BY.LINK_TEXT,"xxxxx");
find_element(BY.PARTIAL_LINK_TEXT,"dddd");
find_element(BY.XPATH,"//* [@id='qwe']");
find_element(BY.CSS_CELECTOR," span>input ");
目录
相关文章
|
29天前
|
Web App开发 Java
使用java操作浏览器的工具selenium-java和webdriver下载地址
【10月更文挑战第12天】Selenium-java依赖包用于自动化Web测试,版本为3.141.59。ChromeDriver和EdgeDriver分别用于控制Chrome和Edge浏览器,需确保版本与浏览器匹配。示例代码展示了如何使用Selenium-java模拟登录CSDN,包括设置驱动路径、添加Cookies和获取页面源码。
|
2月前
|
数据采集 Web App开发 测试技术
使用Selenium与WebDriver实现跨浏览器自动化数据抓取
在网络爬虫领域,Selenium与WebDriver是实现跨浏览器自动化数据抓取的利器。本文详细介绍了如何利用Selenium和WebDriver结合代理IP技术提升数据抓取的稳定性和效率。通过设置user-agent和cookie来模拟真实用户行为,避免被网站检测和阻止。文章提供了具体的代码示例,展示了如何配置代理IP、设置user-agent和cookie,并实现了跨浏览器的数据抓取。合理的参数配置能有效减少爬虫被封禁的风险,提高数据抓取效率。
313 6
使用Selenium与WebDriver实现跨浏览器自动化数据抓取
|
2月前
|
Web App开发 JavaScript Java
自动化测试的利剑:Selenium WebDriver入门与实践
【9月更文挑战第21天】在软件开发的海洋中,自动化测试犹如一艘船,帮助开发者们快速航行至质量保证的彼岸。本文将作为你的罗盘,指引你了解和掌握Selenium WebDriver这一强大的自动化测试工具。通过深入浅出的方式,我们将探索Selenium WebDriver的基本概念、安装过程以及编写简单测试脚本的方法。无论你是刚接触自动化测试的新手,还是希望提升测试技能的开发者,这篇文章都将为你提供有价值的指导。
|
2月前
|
Web App开发 Java 测试技术
自动化测试的利器:Selenium WebDriver入门与实践
【9月更文挑战第8天】在软件开发的海洋中,测试是确保我们不会溺水的那根救生索。Selenium WebDriver,作为自动化测试的明星工具,让这根救生索更加结实可靠。本文将带你快速上手Selenium WebDriver,从基础设置到实际操作,再到实战演练,让你的开发之旅更加平稳顺畅。
|
3月前
|
数据采集 Python
如何用Python Selenium和WebDriver抓取LinkedIn数据并保存登录状态
本文介绍了使用Python Selenium和WebDriver库抓取LinkedIn数据的方法。首先,安装Selenium库和对应的WebDriver,然后配置爬虫代理IP以避免频繁请求被检测。接下来,设置user-agent和cookies以模拟真实用户行为,实现登录并保持状态。登录后,使用WebDriver抓取目标页面数据,如用户名、年龄、性别和简历信息。最后,强调了优化代码、处理异常和遵守使用条款的重要性,以提高效率并避免账号被封禁。
如何用Python Selenium和WebDriver抓取LinkedIn数据并保存登录状态
|
3月前
|
JavaScript 测试技术 API
|
3月前
|
人工智能 监控 安全
F5社区学习笔记:API和AI如何改变应用安全?
F5社区学习笔记:API和AI如何改变应用安全?
49 1
|
3月前
|
设计模式 Java 测试技术
【Selenium使用误区】Iframe元素定位失败:避免误提GitHub Issue的技巧
本文分享了作者在使用Selenium进行UI自动化测试时遇到的一个常见问题:在模拟登录163邮箱的过程中,元素定位失败,原因是没有正确地定位到iframe内的元素。文章通过分析问题原因、提供解决方案和附录代码,指导读者如何避免类似的错误,并强调了在UI自动化测试中准确定位页面元素的重要性。
40 1
|
3月前
|
XML Java 测试技术
Selenium WebDriver自动化测试(基础篇):不得不掌握的Java基础
关于Selenium WebDriver自动化测试的Java基础篇,涵盖了Java的变量、数据类型、字符串操作、运算符、流程控制、面向对象编程、关键字用法、权限修饰符、异常处理和IO流等基础知识点,为进行自动化测试提供了必要的Java语言基础。
106 1
|
3月前
|
Web App开发 前端开发
Selenium WebDriver
【8月更文挑战第9天】
50 7