selenium获取网页表格(selenium 保存网页) | 您所在的位置:网站首页 › 网页下载表格没反应 › selenium获取网页表格(selenium 保存网页) |
selenium 获取元素方法-注解 selenium 查找页面元素方法 1、 Selenium by查找元素 特别强调一下:By.xpath() 绝对路径以单/号表示,而下面要讲的相对路径则以//表示,这个区别非常重要。另外需要多说一句的是,当xpath的路径以/开头时,表示让Xpath解析引擎从文档的根节点开始解析。当xpath路径以//开头时,则表示让xpath引擎从文档的任意符合的元素节点开始进行解析。 查找页面上id为loginForm的form元素: 查找页面上具有name属性为username的input元素: 2、 注解获取页面元素 方式有3种:@FindBy、@FindBys、@FindAll。 下文对3中类型的区别和使用场景进行介绍 1)@FindBy 2)@FindBys @FindBys 相当于是取交集,是先根据第一个注解获取到对应元素,然后根据第二个注解再帅选出对应的页面元素,。如先找到符合classname=A的元素,再在这些元素集中找到id=B的所有元素 就像如下操作: 3)@FindAll @FindAll相当于是取并集,如找到id=A和id=B的所有元素 怎样使用selenium获取网页上面的打印功能页面里面的元素1、可以通过浏览器的调试功能,例如Firefox按F12,点网络标签,然后就可以看到网页的所有数据信息,网页通过AJAX异步加载的数据也可以得到。 2、使用抓包类的工具,如SmartSniff,经过分析也可以得到数据也可以得到数据! 从零开始学Python-使用Selenium抓取动态网页数据AJAX(Asynchronouse JavaScript And XML:异步JavaScript和XML)通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新,这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行局部更新。传统的网页(不使用Ajax)如果需要更新内容,必须重载整个网页页面。 因为传统的网页在传输数据格式方面,使用的是 XML 语法,因此叫做 AJAX ,其实现在数据交互基本上都是使用 JSON 。使用AJAX加载的数据,即使使用了JS将数据渲染到了浏览器中,在 右键-查看网页源代码 还是不能看到通过ajax加载的数据,只能看到使用这个url加载的html代码。 法1:直接分析ajax调用的接口。然后通过代码请求这个接口。 法2:使用Selenium+chromedriver模拟浏览器行为获取数据。 Selenium 相当于是一个机器人。可以模拟人类在浏览器上的一些行为,自动处理浏览器上的一些行为,比如点击,填充数据,删除cookie等。 chromedriver 是一个驱动 Chrome 浏览器的驱动程序,使用他才可以驱动浏览器。当然针对不同的浏览器有不同的driver。以下列出了不同浏览器及其对应的driver: 现在以一个简单的获取百度首页的例子来讲下 Selenium 和 chromedriver 如何快速入门: 参考:Selenium的使用 直接直接分析ajax调用的接口爬取 selenium结合lxml爬取 selenium获取测试对象的内容和状态1.获取当前网页标题:String title=driver.getTitle(); 2.获取当前网页的URL:String url=driver.getCurrentUrl(); 3.获取元素的文本值,比如链接,纯文本等:String text=driver.findElement(By location).getText(); 4.获取元素指定属性的值:String attribute=driver.findElement(By location).getAttribute("属性"); //这里的参数可以是class、name等任意属性 5.获取元素输入框内的文本值:String attribute=driver.findElement(By location).getAttribute("value"); 6.获取元素标签名称:String tagName=driver.findElement(By location).getTagName(); 1.是否显示:使用element.is_displayed()方法。 2.是否存在:使用find_element_by_xxx()方法,捕获其抛出的异常, 如果存在异常的话则可以确定该元素不存在。 3.是否被选中:一般判断表单元素,如radio或checkbox是否被选中,使用element.is_selected()方法( 返回true代表已被选中,返回false代表未被选中 )。 4.是否有效:即是否为灰化状态,使用element.is_enabled()方法( 可用于判断button/checkbox/radio是否置灰 )。 selenium怎么获取网页标签个数?使用xpath=//select/option定位获取到一个元素集合,然后再取这个集合的个数就是option的个数 Selenium处理常见web控件-tableSelenium没有提供table的处理方法,只有根据需要自己编写脚本。主要思路是通过xpath下标和css selector层级的方式,通过循环实现根据行列取数据,根据数据判断所在的行列。 一个简单的table示例: 大致是这样一个表格: 现在表格可能会加多种样式等情况,需要根据实际测试的页面表格情况灵活调整。 再封装一下,封装成一个类: |
CopyRight 2018-2019 实验室设备网 版权所有 |