|
下拉框处理
两种情况
1.下拉框通过元素定位识别
driver.find_element(By.XPATH,'下拉框元素位置').click()
2.创建一个select的对象,然后通过相应方法处理
from selenium.webdriver.support.select import Select
selectElement=driver.find_element(By.XPATH,'//select[@id="Selector"]')
s=Select(selectElement)
s.select_by_index(2)#索引定位,索引从0开始
s.select_by_value("mango")#value属性的值
s.select_by_visible_text("桔子")#可见文本内容
js弹窗操作
当webdriver遇到无法完成的操作时候,可以使用javascript来完成
webdriver提供了execute_script()接口来调用js代码
两种场景
1.在某个已经定位的元素上执行js
driver.execute_script('alert(“hello!!”);')#弹出窗口
driver.execute_script(“arguments[0].style.border='5pxsolidred'”,wl)#加边框
driver.execute_script(“document.body.scrollTop=10000;”)#浏览器滚动条滚动
2.在页面上直接执行js
无需driver.execute_script()
等待操作
为了保证脚本的稳定性,有时候需要引入等待时间,等待页面加载元素后再进行操作,selenium提供三种等待时间设置方式
sleep()
固定休眠时间设置,python的time包里提供了休眠方法sleep,导入包后就能使用;sleep()方法以秒为单位,如果超时设置小于1秒,可以使用小数
implicitlyWait()
隐式等待
在一个时间范围内等待
driver.implicitly_wait(100)
设置等待时间100s,页面上的元素如果5s后出现,只等待5s。不会等待100秒
WebDriverWait()
显示等待
语法格式
WebDriverWait(driver,timeout,poll_frequency=0.5,ignore_exceptions=None)
driver:WebDriver的驱动程序(火狐,谷歌)
timeout:最长超时时间,默认以秒为单位
poll_frequency:休眠时间的间隔(步长)时间,默认为0.5秒
ignore_exceptions:超时后的异常信息,默认情况下抛NoSuchElementException异常
|
|