鼠标行为链
有时候在页面中的操作可能要有很多步,那么这时候可以使用鼠标行为链类ActionChains来完成。比如现在要将鼠标移动到某个元素上并执行点击事件。
还有更多的鼠标相关的操作
-
click_and_hold(element):点击但不松开鼠标。
-
context_click(element):右键点击。
-
double_click(element):双击。
-
更多方法请参考:7. WebDriver API — Selenium Python Bindings 2 documentation
练习
Cookie操作
-
获取所有的cookie
-
根据cookie的name获取cookie
-
删除某个cookie
selenium携带cookie登录qq空间
登录接口
代码实现
页面等待
现在的网页越来越多采用了 Ajax 技术,这样程序便不能确定何时某个元素完全加载出来了。如果实际页面等待时间过长导致某个dom元素还没出来,但是你的代码直接使用了这个WebElement,那么就会抛出NullPointer的异常。为了解决这个问题。所以 Selenium 提供了两种等待方式:一种是隐式等待、一种是显式等待。
-
隐式等待:调用driver.implicitly_wait。那么在获取不可用的元素之前,会先等待10秒中的时间
-
显示等待:显示等待是表明某个条件成立后才执行获取元素的操作。也可以在等待的时候指定一个最大的时间,如果超过这个时间那么就抛出一个异常。显示等待应该使用selenium.webdriver.support.excepted_conditions期望的条件和selenium.webdriver.support.ui.WebDriverWait来配合完成
案例综合使用
一些其他的等待条件
-
presence_of_element_located:某个元素已经加载完毕了。
-
presence_of_all_elements_located:网页中所有满足条件的元素都加载完毕了。
-
element_to_be_clickable:某个元素是可以点击了。
更多条件请参考:5. Waits — Selenium Python Bindings 2 documentation