selenium学习完结散花.docx
一、 根据tag名、id、class选择元素 二、根据css选择元素 三、frame元素切换/窗口切换, frame 或者iframe元素内部会包含一个被嵌入的另一份html文档 四、selenium 选取选择框 五、更多操作技巧 六、Xpath 选择器 Selenium 是一款强大的Web自动化测试工具,主要用于模拟用户在浏览器上的操作。在Python中,Selenium结合webdriver模块,可以实现对各种浏览器(如Chrome、Firefox等)的控制。以下将详细讲解标题和描述中提到的知识点: 一、选择元素 1. 根据tag名选择元素:使用`find_elements_by_tag_name`方法,例如找所有的`<p>`标签。 2. 根据id选择元素:使用`find_element_by_id`方法,如示例中的`find_element_by_id('kw')`用于选取百度搜索框。 3. 根据class选择元素:使用`find_elements_by_class_name`方法,如果要选取多个同类class的元素,可使用`find_elements`而非`find_element`,因为可能有多个元素匹配该class。 二、CSS选择器 CSS选择器允许更复杂和精确的元素定位,如: ```python element = wd.find_element_by_css_selector('#someId .someClass') ``` 这将选取id为'someId'元素内的class为'someClass'的子元素。 三、Frame元素切换与窗口切换 1. Frame切换:使用`switch_to.frame`方法进入iframe或frame元素。 ```python wd.switch_to.frame(wd.find_element_by_id('frameId')) ``` 2. 窗口切换:使用`switch_to.window`方法切换到新的窗口或标签页。 ```python handles = wd.window_handles # 获取所有窗口句柄 wd.switch_to.window(handles[1]) # 切换到第二个窗口 ``` 四、选择框操作 Selenium提供了处理各种表单元素的方法,如选择下拉框选项: ```python select = Select(wd.find_element_by_id('selectId')) select.select_by_value('value') # 通过值选择 select.select_by_visible_text('text') # 通过可见文本选择 ``` 五、更多操作技巧 1. 静默等待:使用`WebDriverWait`确保元素加载完成。 ```python from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC wait = WebDriverWait(wd, 10) element = wait.until(EC.presence_of_element_located((By.ID, 'someId'))) ``` 2. 获取链接值:使用`get_attribute`方法获取`href`属性值。 ```python link = wd.find_element_by_tag_name('a') link_href = link.get_attribute('href') ``` 3. HTML内容获取:`get_attribute`方法可用于获取元素的HTML内容,如内外HTML: ```python outer_html = element.get_attribute('outerHTML') # 整个元素的HTML inner_html = element.get_attribute('innerHTML') # 只获取元素内部的HTML ``` 4. 文本内容获取:使用`text`属性获取元素的文本内容。 ```python text_content = element.text ``` 六、XPath选择器 XPath是一种在XML文档中查找信息的语言,也适用于HTML。它提供了更灵活的定位方式: ```python element = wd.find_element_by_xpath('//input[@id="kw"]') # 通过id选取 element = wd.find_element_by_xpath('//div[@class="classValue"]/span') # 通过class选取 ``` 通过XPath,你可以定位到任何满足条件的元素,比如特定属性、特定位置的元素等。 总结,Selenium提供了丰富的API来处理网页元素,包括定位、交互、内容获取等,而CSS选择器和XPath选择器则极大地扩展了元素定位的能力。结合Python的编程能力,可以实现复杂的自动化测试和网页数据抓取任务。在实际使用中,需要根据具体场景选择合适的选择器和操作方法,以提高效率和稳定性。
剩余63页未读,继续阅读
- 粉丝: 239
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Django和OpenCV的智能车视频处理系统.zip
- (源码)基于ESP8266的WebDAV服务器与3D打印机管理系统.zip
- (源码)基于Nio实现的Mycat 2.0数据库代理系统.zip
- (源码)基于Java的高校学生就业管理系统.zip
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip
- (源码)基于ESP8266和Blynk的IR设备控制系统.zip
- (源码)基于Java和JSP的校园论坛系统.zip
- (源码)基于ROS Kinetic框架的AGV激光雷达导航与SLAM系统.zip
- (源码)基于PythonDjango框架的资产管理系统.zip