使用Python学习selenium的基础2

1,元素的定位


不仅 WebDriver对象有 选择元素 的方法, WebElement对象 也有选择元素的方法。

WebElement对象 也可以调用 find_elements_by_xxx, find_element_by_xxx 之类的方法

WebDriver 对象 选择元素的范围是 整个 web页面, 而

WebElement 对象 选择元素的范围是 该元素的内部。
1.1css选择器
1.2xpath选择器
绝对路径:从根节点开始的,到某个节点,每层都依次写下来,每层之间用 / 分隔的表达式,就是某元素的 绝对路径
相对路径:用//表示从当前节点往下寻找所有的后代元素
通配符:是一个通配符,对应任意节点名的元素,如果要选择所有div节点的所有直接子节点,可以使用表达式 //div/
根据属性选择:格式为:[@属性名=‘属性值’],例如//div/[@id=‘list’]
按次序选择:
子元素:要选择p元素下所有的第2个子元素,就是//p/*[2]
要选择 p类型第2个的子元素,就是//p[2]
要选择p类型倒数第2个子元素,就是//p[last()-1]
选取option类型前3个子元素,就是//option[position()<=3]
组选择:可以用竖线表示| 比如,要选所有的option元素 和所有的 h4 元素,可以使用 //option | //h4
父节点:用/…表示
兄弟节点选择:
后续兄弟节点语法表示: following-sibling::
前面兄弟节点语法表示: preceding-sibling::

2,等待界面元素出现


2.1Selenium 的 Webdriver 对象 有个方法叫 implicitly_wait

该方法接受一个参数, 用来指定 最大等待时长。
2.2 sleep固定时间等待
from time import sleep

3.操控元素的方法


3.1 按钮
点击:元素对象.click()
3.2输入框
输入:元素对象.send_keys()
清除:元素对象.clear()
3.3获取元素信息
获取元素的属性:element.get_attribute(‘属性值’)
获取元素对应的html文本:element.get_attribute(‘outerHTML’)
获取元素里面的html文本:element.get_attribute(‘interHTML’)
获取元素的文本信息:element.text
有时候元素的信息没有或者没有全部显示在界面上,text属性可能获取不到正确的内容,可以使用element.get_attribute(‘innerText’)或者element.get_attribute(‘textContent’)
获取输入框中的文本信息:element.get_attribute(‘value’)
3.4退出浏览器:webdriver.quit()
3.5iframe中的元素:iframe是内嵌的HTML,所以需要使用 WebDriver 对象的 switch_to 属性,例如:wd.switch_to.frame(frame属性)
切换回主HTML:使用wd的方法. switch_to.default_content()可以切换回主HTML
3.6切换Windows窗口:使用swtich_to.windows的方法,:wd.switch_to.window(handle)。handle参数为每个窗口的句柄。使用类似下列的代码:
for handle in wd.window_handles:
wd.switch_to.window(handle)
if ' Bing’ in wd.title:
break
意思为我们依次获取 wd.window_handles 里面的所有 句柄 对象, 并且调用 wd.switch_to.window(handle) 方法,切入到每个窗口,然后检查里面该窗口对象的属性(可以是标题栏,地址栏),判断是不是我们要操作的那个窗口,如果是,就跳出循环。
切换为原来的窗口:可以在切换到新窗口前保留原窗口的句柄 wd.current_window_handle
例: mainWindow = wd.current_window_handle
切换mainWindow时,wd.swtich_to.window(mainWindow)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值