2.2.2 查看页面元素 以百度搜索框为例,先打开百度网页 1.点右上角爬虫按钮 2.点左下角箭头 3.将箭头移动到百度搜索输入框上,输入框高亮状态 4.下方红色区域就是单位到输入框的属性: 的步骤,在FirePath插件里copy对应的xpath地址。 ?...这里先学会如何用工具查看,后续的教程再深入讲解 2.打开FirePath插件选择css 3.定位到后如下图红色区域显示 ?...2.4 CSS定位 前言:大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求。...本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件 有些web界面的选项菜单需要鼠标悬停在某个元素上才能显示出来(如百度页面的设置按钮)。
我把这个测试场景分拆如下步骤: 1) 启动后浏览器,这里我们用Chrome 2) 打开百度首页,https://www.baidu.com 3) 定位搜索输入框,记录下输入框元素的xpath表达式://...*[@id='kw'] 4) 定位搜索提交按钮(百度一下这个按钮),获取xpath表达式://*[@id='su'] 5) 在搜索输入框输入“Selenium”,点击百度一下这个按钮。...如果,还不会通过火狐浏览器上插件firepath获取元素的表达式,请看上一篇文章。如果你没有安装Chrome,那就用Firefox。...() #点击百度一下按钮 # 导入time模块,等待2秒 time.sleep(2) # 这里通过元素XPath表达式来确定该元素显示在结果列表,从而判断Selenium官网这个链接显示在结果列表...总结:自动化测试最难的在于如何去写断言,如何判断测试结果是否通过。 建议:以上代码包括以后文章中脚本举例,你还是最好去一行一行抄写,不要直接复制、黏贴到你记事本中。
元素,在这个教程系列,我们说的元素之网页元素(web element)。在网页上面的文本输入框,按钮,多选,单选,标签,和文字都叫元素,总之,凡是能在页面显示的对象都可以作为页面元素对象。...重复步骤3和4,搜索和安装FirePath。 5. 安装好了之后,会在火狐浏览器右上角显示一个虫子的图标。 1.2 XPath工具简单使用 我们用定位百度首页的搜索输入框这个元素定位来演示。...鼠标定位到搜索输入框 3. 右键鼠标,选Inspect in FirePath 4. ...这里用火狐浏览器百度首页的一个单选按钮来举例; 火狐浏览器上firepath给出的推荐表达式是: 这里推荐的XPath是根据目标元素节点中id信息来定位的,这个通过id就能定位,当然好。...如图: FirePath插件的使用就更加方便和快捷了,选中元素后,直接在XPath的输入框中生成当前元素的XPath语法,如图: 您的肯定就是我进步的动力。
元素,在这个教程系列,我们说的元素之网页元素(web element)。在网页上面的文本输入框,按钮,多选,单选,标签,和文字都叫元素,总之,凡是能在页面显示的对象都可以作为页面元素对象。...重复步骤3和4,搜索和安装FirePath。 5. 安装好了之后,会在火狐浏览器右上角显示一个虫子的图标。 1.2 XPath工具简单使用 我们用定位百度首页的搜索输入框这个元素定位来演示。...鼠标定位到搜索输入框 3. 右键鼠标,选Inspect in FirePath 4....这里用火狐浏览器百度首页的一个单选按钮来举例; 火狐浏览器上firepath给出的推荐表达式是: 这里推荐的XPath是根据目标元素节点中id信息来定位的,这个通过id就能定位,当然好。...如图: FirePath插件的使用就更加方便和快捷了,选中元素后,直接在XPath的输入框中生成当前元素的XPath语法,如图: 您的肯定就是我进步的动力。
我们来看一段最早的代码: # coding: utf-8 from selenium import webdriver from time import sleep driver = webdriver.Firefox...我们用箭头所指工具点击要查看的元素后,在FirePath选项卡下,方框所示的位置会有"iframe.editor"或者"iframe"的提示,这时候我们就可以确定——这是一个iframe。...由于一点编辑框就进入iframe,导致我不知道怎么定位这个iframe的位置,于是我选择定位这个iframe上面的元素,也就是定位下图方框那里,然后看下面的元素,点开div标签,在里面找iframe,方便的是鼠标移动到标签上时页面会有显示对应的位置...所以当我们操作完成,继续定位发现下图方框处变成Top Window时,证明这已经不是iframe,我们需要跳出盒子了 ?...好多登录框、文章输入框都是iframe写的,现在对你来说应该已经不难了,大家快试试吧~~ 遇到问题可以留言哦~
4.当XPath的路径以/开头时,表示让XPath解析引擎从文档的根节点开始解析。当XPath路径以//开头时,则表示让XPath引擎从文档的任意符合的元素节点开始进行解析。...而当/出现在XPath路径中时,则表示寻找父节点的直接子节点,当//出现在XPath路径中时,表示寻找父节点下任意符合条件的子节点,不管嵌套了多少层级。...如下面源码示例: 这段代码中的“订餐”这个超链接,没有标准id元素,只有一个rel和href,不是很好定位。...href, 'order')]") 这句话的意思是寻找页面中href属性值包含有order这个单词的所有a元素,由于这个“订餐”按钮的href属性里肯定会包含order,所以这种方式是可行的,也会经常用到...打开Firefox后,开启FirePath,选择XPath对元素进行定位。 搜索框页面源代码: 脚本代码: #!
但是我们有时候需要让它内嵌在代码中运行,所以我们可以用一个叫 PhantomJS 的工具代替真实的浏览器。...driver = webdriver.PhantomJS() # 如果没有在环境变量指定PhantomJS位置# driver = webdriver.PhantomJS(executable_path...下拉菜单的操作(导入select类) # 导入 Select 类 from selenium import webdriver from selenium.webdriver.support.ui import...Select driver = webdriver.Chrome() driver.get("http://127.0.0.1:8080") # 找到 name 的选项卡 select = Select...("3") #根据显示值找到对应的选择 select.select_by_visible_text("审核不通过") 页面切换 driver.switch_to.window("window name"
3.3 通过 XPath 路径定位元素 XPath 是用于定位 XML 文档中节点的技术,HTML/XML 都是采用网页 DOM 树状标签的结构进行编写的,所以可以通过 XPath 方法分析其节点信息。...这也体现了 XPath 方法的一个优点,即当没有一个合适的 id 或 name 属性来定位所需要查找的元素时,可以使用 XPath 去定位这个绝对元素(但不建议定位绝对元素),或者定位一个有 id 或...根据上图,用同样的方法定位输入框并清除默认数据后输入账户密码,单击登录。...定位 "name" 下拉菜单标签后,调用 SELECT 类选中选项,同时 select_by_visible_text() 用于显示选中的菜单,也可以提交 Form 表单,具体代码如下: from selenium.webdriver.support.ui...对于目标网页需要验证登录后才能爬取,所爬取的数据位于弹出对话框中或所爬取的数据通过超链接跳转到了新的窗口等情况,Selenium 技术的优势就体现出来了,它可以通过控制鼠标模拟登录或提交表单来爬取数据,
select>select>标签的下拉框。...直接点击下拉框中的选项不一定可行。...其实WebDriver中提供了一个叫Select的方法,可以帮助我们完成这些事情: #导入Select类 from selenium.webdriver.support.ui import Select...注意: index索引从0开始 value是option标签的一个属性值,并不是显示在下拉框中的值 visible_text实在option标签文本的值,是显示在下拉框的值 全部取消选择怎么办呢?...隐式等待就是等待特定的时间,显示等待是指定某一条件知道这个条件成立时继续执行。 显式等待 显示等待指定了某个条件,然后设置最长等待事件。如果在这个时间还找到没有元素,那么便会抛出异常。
有的网页中的信息需要执行js才能显现,动态网页中, 通常只会更新局部的Html元素, webdriver会很好的帮助用户快速定位这些元素,最终目的是通过提供精心设计的面向对象API来解决现代高级网页中的测试难题...当我们在master上基于不同的浏览器/系统运行测试用例时,master将会将测试用例分发给适当的node运行。...有时即便有id也不能通过id定位,因为它可能是动态id; 4.由于selenium使用xpath定位时采用遍历页面的方式,在性能上采用CSS选择器的方式更优。...('//*[@id="order"]/li/div[1]/a[1]').click() time.sleep(4) # 单击工作性质后的下拉框 driver.find_element_by_xpath(...# 获取对话框的提示信息文本内容 driver.switch_to.alert.send_keys() # 向对话框中输入内容 如果没有文本框 则抛出异常 2.5.2 新窗口的切换 import time
它的优点是什么? 40、如何在WebDriver中截取屏幕截图? 41、如何使用Selenium在文本框中输入文本? 42、怎么知道一个元素是否显示在屏幕上?...关于 XPath 的其他一些要点如下: XPath 是一种用于在 XML 文档中定位节点的语言。 当没有适合要定位的元素的 id 或 name 属性时,可以使用 XPath 作为替代。...属性: 当没有适合要定位的元素的 id 或 name 属性时,始终建议使用 XPath 属性。...使用 WebDriver 的 Select 类来选择下拉列表中的值。...WebDriver 允许用户检查 Web 元素的可见性。这些网络元素可以是按钮、单选按钮、下拉菜单、复选框、框、标签等,它们与以下方法一起使用。
import Keys # 调用环境变量指定的PhantomJS浏览器创建浏览器对象 driver = webdriver.PhantomJS() # 如果没有在环境变量指定PhantomJS位置...).perform() 7.填充表单 我们已经知道了怎样向文本框中输入文字,但是有时候我们会碰到select> select>标签的下拉框。...直接点击下拉框中的选项不一定可行。...(1) select.select_by_value("0") select.select_by_visible_text(u"未审核") 以上是三种选择下拉框的方式,它可以根据索引来选择,可以根据值来选择...注意: index 索引从 0 开始 value是option标签的一个属性值,并不是显示在下拉框中的值 visible_text是在option标签文本的值,是显示在下拉框的值 全部取消选择怎么办呢
但是我们有时候需要让它内嵌在代码中运行,所以我们可以用一个叫 Phantomjs 的工具代替真实的浏览器。...下拉菜单的操作(导入select类) # 导入 Select 类 from selenium import webdriver from selenium.webdriver.support.ui import...Select driver = webdriver.Chrome() driver.get("http://127.0.0.1:8080") # 找到 name 的选项卡 select = Select...("3") #根据显示值找到对应的选择 select.select_by_visible_text("审核不通过") 6....# 页面框添加页码 input.send_keys(page) #找到确定按钮,点击确定 driver.find_element_by_css_selector("#mainsrp-pager
本文将介绍如何使用Selenium和API来实现动态网页的爬取 静态网页与动态网页的区别 静态网页是在服务器端生成并发送给客户端的固定内容,内容在客户端展示时并不会发生变化。...使用Selenium实现动态网页爬取 Selenium是一个用于自动化浏览器操作的工具,它可以模拟用户在浏览器中的操作,包括点击按钮、填写表单、执行JavaScript等。...Selenium可以模拟用户在浏览器中的行为,如点击按钮、填写表单、执行JavaScript等。 安装和配置 首先,你需要安装Selenium库。...将驱动程序路径添加到系统路径中,以便Selenium可以找到它。 创建WebDriver对象 在Python中,使用相应的驱动程序创建一个WebDriver对象。...("option_value") # 通过可见文本选择选项 select.select_by_visible_text("Option Text") 鼠标操作(鼠标移动、单击、双击): 示例: from
Selenium 提供多种方式来定位网页元素,例如通过 ID、类名、标签名、CSS 选择器、XPath 等,方便我们查找和操作页面中的特定元素。...(五)显示等待示例 在查找节点之前等待元素出现,以避免因页面加载较慢而导致的定位失败。...以下是常见的节点交互方法。 (一)点击元素 使用 click() 方法模拟用户点击按钮、链接等元素。...可以模拟用户在输入框中输入内容。...clear() 方法清除输入框中的现有文本内容。
我这里用的xpath,取a[@class="mnav"]中的文本 18 data_titles = driver.find_elements_by_xpath('//a[@class="mnav"]')...ac1, ac2).perform() 有时候我们会碰到select> select>标签的下拉框。...直接点击下拉框中的选项不一定可行。Selenium专门提供了Select类来处理下拉框。...("0") 10 select.select_by_visible_text("未审核") 11 12 13 #index 索引从 0 开始 14 #value是option标签的一个属性值,并不是显示在下拉框中的值...15 #visible_text是在option标签文本的值,是显示在下拉框的值 当你触发了某个事件之后,页面出现了弹窗提示,处理这个提示或者获取提示信息方法如下: alert = driver.switch_to_alert
,在也不愁数据数据再次丢失的问题了[服务器老李在请求参数中,添加了一个加密字段,如果参数中包含了正确的加密字段,就允许访问数据,如果参数中没有标注则拒绝访问] 老王已经饿了太多天了 老王找到了传说中的某个大师...(by=By.NAME, value=’real_name’) find_elemnets_by_xpath() 根据xpath语法查询指定的标签 driver.find_elements_by_xpath...(“kw”) 输入数据:kw.send_keys(u”关键字”) 表单处理:下拉列表框选择数据 from selenium.webdriver.support.ui import Select 选择下拉框...(“zhengzhou”) # 根据具体下拉框的value赋值 sl.select_by_visible_text(“郑州”)# 根据下拉框显示的值赋值 sl.deselect_all() # 全部取消...该模块包含了和鼠标操作相关的行为 模拟鼠标单击 driver.find_element_by_id(“su”).click() 鼠标链操作 from selenium.webdriver
安装过程中的会显示安装配置相关包的百分比,直到出现“Successfully installed selenium-2.47.1”提示,表示安装成功,如图4所示。...这也体现了XPath方法的一个优点: 当没有一个合适的ID或Name属性来定位所要查找的元素时,你可以使用XPath去定位这个绝对元素(但作者不建议定位绝对元素),或者定位一个有ID或Name属性的相对元素位置...同样可以自动搜索作者“Eastmount”的信息,哈哈~ ---- 2.鼠标操作 Selenium操作鼠标技术也常用于自动化测试中,它位于ActionChains类中,最常用的是click()函数,该函数表示单击鼠标左键操作...定位“name”下拉菜单标签之后,我们调用SELECT类选中选项,同时select_by_visible_text()用于显示选中菜单,也可以提交Form表单。...但不同之处在于: Selenium能方便的操控键盘、鼠标以及切换对话框、提交表单等,当我们的目标网页需要验证登录之后才能爬取、所爬取的数据位于弹出来的对话框中或者所爬取的数据通过超链接跳转到了新的窗体时
,在也不愁数据数据再次丢失的问题了[服务器老李在请求参数中,添加了一个加密字段,如果参数中包含了正确的加密字段,就允许访问数据,如果参数中没有标注则拒绝访问] ---- 老王已经饿了太多天了 老王找到了传说中的某个大师...'real_name') find_elemnets_by_xpath() 根据xpath语法查询指定的标签 driver.find_elements_by_xpath('//input[id="...import Select 选择下拉框:sl = Select(driver.find_element_by_id("city")) 输入选择的值: sl.select_by_index(1) #...根据值的索引赋值 sl.select_by_value("zhengzhou") # 根据具体下拉框的value赋值 sl.select_by_visible_text("郑州")# 根据下拉框显示的值赋值...该模块包含了和鼠标操作相关的行为 模拟鼠标单击 driver.find_element_by_id("su").click() 鼠标链操作 from selenium.webdriver import
领取专属 10元无门槛券
手把手带您无忧上云