1. 获取浏览器的信息:
浏览器的信息存在driver.capabilities这个字典中
keys =list(driver.capabilities.keys()) #通过list将字典中的keys转化为列表
values = list(driver.capabilities.values())通过list将字典中的values转化为列表
driver.capabilities['browserVersion']: 获取字段中key='browserVersion'的版本信息
2. 测试之时间等待:
a. 显式等待:是针对于某个特定的元素设置的等待时间。
WebDriverWait(browser, timeout, poll_frequency=0.5, ignored_exceptions=None) 一般和until()或until_not方法配合使用。需要通过from selenium.webdriver.support.wait import WebDriverWait导入模块
browser:浏览器的驱动,timeout:最大超时时间,poll_frequency:检测的间隔时间,ignored_exceptions:超时后的异常信息,默认抛出NoSuchEelementException的异常)
WebDriverWait(driver,3).until(browser.find_element_by_id("name"), message=None).send_keys("zhangsan")
//如果在html上找到id为name这个元素,就输入信息”zhangsan"
WebDriverWait(driver,3).until_not(browser.find_element_by_id("name").is_displayed(), message=None)
//判断id为name这个元素是否已经在html上消失。
b. 隐式等待(implicitly_wait):通过一定的时长等待页面上的某元素加载完成。如果超出了设置的时长元素还没有被加载,则抛出NoSuchElementException异常,如果在设置时间内找到某元素,会马上执行后面的操作。
特点:智能等待,单位为s
c. 休眠(time.sleep):单位为s,时间固定
time.sleep(5):表示必须等待5秒定位,就算在5秒内找到指定元素,也强制等待3秒。
如何灵活运用:
当某个页面元素变化多,影响多的情况下,用sleep,等页面元素稳定了,再定位。
如果用implicitly_wait(5),还没等页面元素稳定后就定位,导致定位不准确。