(下)python3 selenium3 从框架实现代码学习selenium让你事半功倍
上一篇博文简要 在上一篇博文中已得知:使用 execute 向远程服务器发送请求会通过 webdriver 与浏览器交互,且发送已定义的命令常量可获得一些相关信息。 其中 execute 方法实现已经在上一篇博文中有实现说明。并且在我们已经知道 webdriver基类(selenium.webdriver.remote.webdriver)中,实现了操作页面元素的基本方法。 通过简单运用全面学习 假设现在需要打开百度,搜索“CSDN A757291228”该如何进行操作呢? 通过查找 webdriver基类(selenium.webdriver.remote.webdriver)找到了以下几个 在Python3中,Selenium3是一个强大的自动化测试工具,它允许开发者模拟用户行为与网页进行交互。本篇我们将深入探讨如何使用Selenium框架中的WebDriver API来实现自动化网页操作,特别是如何寻找并操作页面元素。 `execute`方法是WebDriver与浏览器通信的关键,它能够向远程服务器发送命令并接收响应。在上一篇博文中已经详细介绍了`execute`方法的实现,通过这个方法我们可以执行各种定义好的命令常量,获取浏览器和页面的相关信息。 在Selenium的WebDriver基类`selenium.webdriver.remote.webdriver`中,提供了一系列用于操作页面元素的方法。例如,当你需要在网页上找到特定的元素时,你可以使用以下方法: 1. **根据ID查找元素**: - `find_element_by_id(id_)`:返回匹配给定ID的首个元素,如果没有找到则抛出`NoSuchElementException`。 - `find_elements_by_id(id_)`:返回匹配给定ID的所有元素,如果没有找到则返回一个空列表。 2. **根据XPath查找元素**: - `find_element_by_xpath(xpath)`:返回匹配给定XPath表达式的首个元素,如果没有找到则抛出`NoSuchElementException`。 - `find_elements_by_xpath(xpath)`:返回匹配给定XPath表达式的所有元素,如果没有找到则返回一个空列表。 3. **根据链接文本查找元素**: - `find_element_by_link_text(link_text)`:返回匹配给定链接文本的首个元素,如果没有找到则抛出`NoSuchElementException`。 - `find_elements_by_link_text(link_text)`:返回匹配给定链接文本的所有元素,如果没有找到则返回一个空列表。 4. 还有其他查找方法,如根据CSS选择器、标签名、名称等查找元素,它们同样遵循这样的模式,方便我们根据不同的定位策略找到页面上的元素。 假设我们要实现打开百度,搜索“CSDN A757291228”的操作,可以按照以下步骤进行: 1. 初始化WebDriver实例,指定浏览器类型(如Chrome或Firefox): ```python from selenium import webdriver driver = webdriver.Chrome() # 或者 driver = webdriver.Firefox() ``` 2. 让浏览器打开百度首页: ```python driver.get("http://www.baidu.com") ``` 3. 找到搜索框元素,并输入搜索关键词: ```python search_box = driver.find_element_by_name("wd") # 假设搜索框的name属性为"wd" search_box.send_keys("CSDN A757291228") ``` 4. 提交搜索请求,可以模拟点击搜索按钮或者调用`submit()`方法: ```python search_button = driver.find_element_by_id("su") # 假设搜索按钮的id属性为"su" search_button.click() # 或者 search_box.submit() ``` 5. 在搜索结果页面进行进一步操作,例如,如果需要等待页面加载完成,可以使用`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 # 等待搜索结果页面加载,假设结果列表的class为"lst" wait = WebDriverWait(driver, 10) result_list = wait.until(EC.presence_of_all_elements_located((By.CLASS_NAME, "lst"))) ``` 6. 当完成所有操作后,记得关闭浏览器: ```python driver.quit() ``` 通过以上步骤,我们就可以使用Selenium3实现自动化网页操作。Selenium提供的API非常丰富,不仅可以查找和操作元素,还包括模拟用户交互、处理弹出框、检查元素属性等多种功能,这使得它成为Web自动化测试和数据抓取的重要工具。在实际应用中,可以结合其他库,如BeautifulSoup或Scrapy,来实现更复杂的任务。通过深入学习Selenium框架,你可以事半功倍地完成自动化工作,提高工作效率。
- 粉丝: 7
- 资源: 925
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 毕业设计-基于java的校园二手交易系统毕业设计-全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于java电影院订票选座系统,带论文全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于JSP+Servlet的网上书店系统全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于Node.js,Angular,Express,ESP8266 WIFI芯片的物联网温度采集系统-全部资料+详细文档+高分项目+源码.zip
- S7-200SMART V2.8版本 PID自整定快速入门指南.rar
- 毕业设计-基于SpringBoot的二手商城系统二手交易平台,校园二手书籍交易,社区二手交易平台全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于SSH框架的外卖点餐系统全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于SpringBoot及thymeleaf搭建的疫情信息管理系统全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于SSM的毕业设计-论文题目审核及选题管理系统全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于SSM+AmazeUI培训中心管理系统全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于SSM城市公交查询系统全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于SSM的人力资源管理系统-全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于SSM电影院订票系统全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于SSM技术的宿舍管理系统全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于SSM精品课程在线学习系统全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于SSM教务选课成绩管理系统全部资料+详细文档+高分项目+源码.zip
评论0