Python+Selenium之练习篇3: 获取浏览器信息及时间等待

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),还没等页面元素稳定后就定位,导致定位不准确。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容