以百度搜索框为例,先打开百度网页 1.点右上角爬虫按钮 2.点左下角箭头 3.讲箭头移动到百度搜索输入框上,输入框高亮状态 4.下方红色区域就是单位到输入框的属性: <input id="kw" class="s_ipt" type="text" autocomplete="off" maxlength="100" name="wd"> 元素定位:find_element_b…
一.定位方法 注意:元素属性必须唯一存在 #id定位 find_element_by_id() #name定位 find_element_by_name() #class_name定位 find_element_by_class_name() #链接文本定位 find_element_by_link_text() #部分链接文本定位 find_element_by_partial_link_text() #xpath定位 find_element_by_xpath() #css定位 find_e…
[环境] Python3.6+selenium3.0.2+FireFox50+win7 [定位方法] 1.方法:find_element_by_xpath('') 说明:xpath定位方法有相对路径和绝对路径之分,当元素层级较多时,绝对路径会很长: 相对路径具有布尔逻辑运算. 缺点: 1)性能差,定位元素的性能比其他方式差: 2)稳定性差,Xpath会随着页面布局元素的改变而改变: 3)兼容性不好,在不同浏览器下Xpath的实现是不一样的. [示例] import unittest from s…
[环境] Python3.6+selenium3.0.2+IE11+win7 [定位方法] 1.link/partial link定位方法:定位的元素为文字链接且链接很长时 方法:find_element_by_link_text('xx‘) find_element_by_partial_link_text('xx') [示例] 用以下代码成功定位 import unittest from selenium import webdriver import time class LearnEle…
[环境] Python3.6+selenium3.0.2+IE11+Win7 [定位方法] 1.通过ID定位 方法:find_element_by_id('xx') 2.通过name定位 方法:find_element_by_name('xx') 3.通过class name定位 方法:find_element_by_class_name('xx') 4.通过tag name定位 方法:find_element_by_tag_name('xx') 说明:tag name在html中是标签的名字,…
[环境] python3.6+selenium3.0.2+Firefox50.0+win7 [定位方法] 1.方法:find_element_by_css_selector('xx') CSS的语法比较复杂,还需要进一步学习,在初期学期过程中,如果有问题可以采用Firebug工具自动定位元素. [示例] 简单的示例,这种定位方法还需要加强 #----------CSS定位----------- def testCss(self): #通过属性定位百度搜索框 element = self.driv…
今天在写selenium一个发送邮件脚本时,遇到一些没有找到页面元素的错误.经过自己反复调试,找原因百度,终于解决了.简单总结一下吧,原因有以下几点: 一:Frame控件嵌套,.Frame/Iframe原因定位不到元素: 一般大家经常使用的邮箱算是frame嵌套的典型,通常注册登录都是在一个frame控件里面,而且标题正文可能是frame中嵌套iframe,接下里用我今天的脚本为例子(qq邮箱) 可以看到,如果我们要想找到收件人,标题就要先进到第一个Frame控件中,否则就会报错,但如果还要找到…
什么样的是动态id呢? 动态id就是第一次点击显示的id与二次点击显示的不一样,一般是元素属性中包含一段数字的这种情况. 类似这种: 1 <input type="button" value="选择" id="btncussel1452"> 这种情况,个人觉得比较简单的定位方法是用XPath来根据部分元素属性定位即模糊定位: 有三种情况: 1  driver.find_element_by_xpath("//input[st…
显式等待 显式等待使 WebdDriver 等待某个条件成立时继续执行,否则在达到最大时长时抛弃超时异常 (TimeoutException). #coding=utf-8 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support…
第一篇讲了xpath定位的一些基本定位方法,这里再介绍一种:xpath轴定位,应用场景是当某个元素的各个属性及其组合都不足以定位时,那么可以利用其兄弟节点或者父节点等各种可以定位的元素进行定位. 1.xpath轴是什么 w3cschool上的定义如下: 语法 2.具体应用 (1)descendant表示取当前节点的所有后代元素 定位百度首页的“百度一下”按钮 可以看到, <input>标签的父元素是<span>标签,而<span>标签的父元素是<form>标…