博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Selenium-Python小记(一)
阅读量:5920 次
发布时间:2019-06-19

本文共 2486 字,大约阅读时间需要 8 分钟。

hot3.png

安装selenium

pip install selenium

使用selenium

1.导入selenium库

from selenium import webdriver

2.创建实例

driver = weibdriver.FireFox()

3.打开网址

driver.get('http://www.baidu.com')

4.定位UI元素 示例:

(1)使用ID定位:根据标记id属性的值进行元素定位,个人比较推荐,因为id属性大部分具有唯一性,不用担心定位错元素,除非自动生成id属性,会出现“no such element”的报错。

driver.find_element_by_id("kw")orfrom selenium.webdriver.common.by import Bydriver.find_element(by=By.ID,value="kw")

(2)使用classname定位:根据标记class属性的值进行定位,除非该class属性值是唯一的,否则会定位该class属性值第一次出现的位置

driver.find_element_by_class_name("s_ipt") orfrom selenium.webdriver.common.by import Bydriver.find_element(By,CLASS_NAME,"s_ipt")

(3)使用tag name 定位:根据元素的标记名称进行定位,和classname定位一样,如果该tagname不是唯一的,则会定位值该tagname第一次出现的位置

driver.find_element_by_tag_name("input")orfrom selenium.webdriver.common.by import Bydriver.find_eleme(BY.TAG_NAME,"input")

(4)使用name定位:根据标记的name属性进行定位,同id定位一样,唯一性较强

driver.find_element_by_name("wd")orfrom selenium.webdriver.common.by import Bydriver.find_element(BY.NAME,"wd")

(5)使用link text定位:此定位方法适用于文本链接标记(<a>),如

关于百度

这样的情况。通过“关于百度”来定位元素

driver.find_element_by_link_text("关于百度")orfrom selenium.webdriver.common.by import BYdrvier.find_element(BY.LINK_TEXT,"关于百度")

(6)使用partial link text定位:此定位方法同link text定位相似,但是比link text定位使用范围相对更广泛,可以通过只言片语便能能进行定位,但是其准确性相比link text稍微差一些

driver.find_element_by_partial_link_text(‘’关于“)orfrom selenium.webdrvier.common,by import BYdrvier.find_element(BY.PARTIAL_LINK_TEXT,"关于")

(7)使用xpath定位:xpath定位的手段比较多,常见有如下几种: 输入图片说明 定位百度首页搜索输入框 方法一:使用目标元素的绝对路径,如下面的情况

driver.find_element_by_xpath('/html/body/div[1]/div[1]/div/div[1]/div/form/span[1]/input')

方法二:使用元素属性定位:

#使用id属性driver.find_element_by_xpath('//input[@id=“kw”]’)#使用name属性driver.find_element_by_xpath('//input@[name=“wd"])#使用class属性driver.find_element_by_xpath('//input@[class="s_ipt"])#使用多个属性driver.find_element_by_xpath('//input@[class="s_ipt"] and @[name="wd"]')

要说明的是 //表示页面某个目录下

方法三:使用目标元素绝对路径和属性定位

driver.find_element_by_xpath("//span@[class='quickdelete-wrap'/input]")

(8)使用css选择器定位 方法一:使用目标元素的绝对路径,如下面的情况

driver.find_element_by_css_selector('html>body>div>wrapper>div>div>div>div>form>span>input')

多个标记使用'>'分开,

方法二:使用元素属性定位:

#使用id属性driver.find_element_by_css_selector('#kw’)#使用class属性driver.find_element_by_css_selector('.s_ipt')#使用标签driver.find_element_by_css_selector('input')#使用某个属性driver.find_element_by_css_selector('input[class="s_ipt"]')

要说明的是 //表示页面某个目录下

方法三:使用目标元素绝对路径和属性定位

driver.find_element_by_css_selector('span.bg.s_ipt_wr.quickdelete-wrap>input#kw')

转载于:https://my.oschina.net/u/2431775/blog/916994

你可能感兴趣的文章
IIS调用COM组件的权限问题
查看>>
重温Java持久化(二)实战
查看>>
MySQL存储引擎介绍
查看>>
mysql 配置文件中常用的参数
查看>>
重磅!新高考将编程纳入必学科目!这个省最先试行
查看>>
Linux监控平台(主被动模式,添加监控主机,添加图形,处理图形乱码,远程执行命令)...
查看>>
交换机 DHCP 协议与配置
查看>>
IOS开发NSBundle对象使用详解
查看>>
YII2-安装配置(参照中文网站安装)
查看>>
采用mod_jk模式配置Apache-2.2.4+Tomcat-7.0.32实现负载均衡(超详...
查看>>
NAT网络地址转换(二)
查看>>
入门1班 20180914 chmod umask 等
查看>>
安装apache2.4.6的几个报错
查看>>
未来DDOS会成为大规模破坏网络的武器
查看>>
Git基本操作
查看>>
多环境下的配置管理方案
查看>>
JavaEE细节问题01——访问web资源的相对路径和绝对路径
查看>>
【objective-c】面试题和基本概念【转帖,不保证正确性哦】
查看>>
Python3安装tkinte
查看>>
广平县北方计算机第一届PS设计大赛
查看>>