关于selenium:自动化selenium内容扩充

1、首先理解webdriver,selenium外围玩的就是他;

2、其次晓得根本的元素定位

b.find_element_by_id() 等函数

3、说白了就是要把握元素定位的办法,先手工在浏览器开发者模式下可能失常定位到元素

通过XPATH:

xpath中定位元素,个别倡议相对路径:

//的模式

*代表所有

//*[@id=”] 如果两头须要另外一个配合则加一个and

xpath也有内置的办法text()

Xpath定位元素的几种形式

1)绝对路径定位

a = browser.find_element_by_xpath(‘/html/body/div/div[2]/div/div/div/from/span/input’)
绝对路径定位存在很大的问题就是如果页面元素一扭转元素的xpath也会随之扭转,很不稳固,不举荐应用

2)标签+属性定位——xpath = “//标签名[@属性=’属性值’]”

例如,百度首页的输入框的xpath就能够示意为//[@id=”kw”],其中示意所有的标签名

当繁多的属性无奈确定到一个元素时,能够应用组合属性的形式例如,百度首页的输入框能够示意为//*[@id=”kw” and @name=”wd”]

当然,也能够应用其余的逻辑运算,比方or、not

3)text()办法定位

百度首页的新闻超链接的xpath能够示意为//*[text()=’新闻’]

4)contains()办法定位,也叫含糊定位

xpath = “//标签名[contains(@属性, ‘属性值’)]”例如,百度首页的新闻也能够写成//a[contains(@name,’news’)]

5)starts-with,ends-with办法定位

starts-with –匹配以xx结尾的属性值;ends-with — 匹配以xx结尾的属性值//*[starts-with(@value,’百度一’)]能够定位到百度一下按钮;然而browser.find_element_by_xpath(“//a[ends-with(@name,’_trnews’)]”)定位不到新闻,那是因为ends-with是Xpath2.0的用法,然而浏览器个别通常只反对Xpath1.0

6)如果一个元素无奈通过本身的属性定位到,那么能够先定位到他的上一级或者上N级,而后再一级一级地找到他

例如,定位到百度首页的输入框,能够示意成//form[@id=’form’]/span[contains(@class,’s_ipt_wr’)]/input

4、在自动化中的外围就是判断页面的响应,也就是当一个元素或者控件进去后才进行下一步,及这个页面是否因为点击或者其余操作而呈现

WebDriverWait(dr, 10).until(lambda the_driver: the_driver.find_element_by_id(‘dropdown1’).is_displayed())

这个就是期待元素呈现,并判断是否展现;

coding:utf-8

from selenium import webdriver

#导入By类

from selenium.webdriver.common.by import By

#导入显示期待类

from selenium.webdriver.support.ui import WebDriverWait
#导入冀望场景类

from selenium.webdriver.support import expected_conditions

driver = webdriver.Chrome()

alert_is_present():判断页面是否呈现alert框

result=WebDriverWait(driver,10).until(expected_conditions.alert_is_present())

print(result.text)

5、selenium外面的坑,就是浏览器界面的坑,无非就是iframe的嵌套中,要来回切换跳转,切换到iframe中去搞,之后再切出来

switch_to_frame()

switch_to_window()

开释iframe,从新回到主页面上

driver.switch_to.default_content()

6、selenium中有些组件仍不能满足条件,或者对于某些元素的点击及定位都无奈获取,则能够去用应用selenium间接操作JS来封装办法去调用。

driver.execute_script(c)

c外面能够写js的代码

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据