Selenium API高级

弹出框操作

        1) 进入到弹出框中

                driver.switch_to.alert

        2) 接收警告

                accept()

        3) 解散警告

                dismiss()

        4) 发送文本到警告框

                send_keys(data)

Selenium API高级_第1张图片

鼠标和键盘操作

       手动测试时键盘的操作在selenium页有实现,关于鼠标的操作由ActionChains()类来提供,关于键盘的操作由Key()类来提供

        1)鼠标操作

                导入动作链类,动作链可以储存鼠标的动作

                        from selenium.webdriver import ActionChains    

                获取元素 

                        el = driver.find_element_by_xxx(value)

                        context_click(el)       对el执行右击

                        执行ActionChains中储存的所有动作

                        perform()

例如:ActionChains(driver).context_click(ele).perform()     点击鼠标右键Selenium API高级_第2张图片Selenium API高级_第3张图片

ActionChains(driver). double_click(ele).perform()    点击鼠标左键 Selenium API高级_第4张图片Selenium API高级_第5张图片

 ActionChains(driver).move_to_element(el).perform() 鼠标悬停Selenium API高级_第6张图片Selenium API高级_第7张图片 键盘操作

        键盘操作使用的是Keys类,一般配合send_keys使用

        导入:

                from selenium.webdriver.common.keys import Keys

        常用键盘操作

                send_keys(Keys.BACK_SPACE)     删除键(BackSpace)

                send_keys(Keys.SPACE)         空格键(Space)

                send_keys(Keys.TAB)             制表键(Tab)

                send_keys(Keys.ESCAPE)         回退键(Esc)

                send_keys(Keys.ENTER)         回车键(Enter)

                send_keys(Keys.CONTROL,‘a’)     全选(Ctrl+A)

                send_keys(Keys.CONTROL,‘x’)     剪切(Ctrl+X)

                send_keys(Keys.CONTROL,‘v’)     粘贴(Ctrl+V)

                send_keys(Keys.F1)             键盘 F1

                send_keys(Keys.F12)             键盘 F12Selenium API高级_第8张图片Selenium API高级_第9张图片

 

Selenium API高级_第10张图片Selenium API高级_第11张图片

 浏览器等待

        强制等待

        导入定时等待库

                from time import sleep 或者 import time

time.sleep(10) # 表示强行等待10s在执行下一句代码 这种等待方式时间到了就会执行下个语句,但比较死板,不能保证在等待的时间内元素真正被加载了出来。而且如果等待的元素已经被加载出来,还需要等待到时间才会执行下一句,浪费时间。

        隐式等待

        driver.implicitly_wait(30) #等待30s

这个等待表示在规定的时间内页面的所有元素都加载完了就执行下一步,否则一直等到时间截止,然后再继续下一步。 这个方法的缺点是你需要的元素已经加载出来了,但页面还没有加载完,再需要继续等待页面加载完才能执行下一步操作。

显式等待

需要导入的包

from selenium.webdriver.support.wait import WebDriverWait 导入显性等待的包

from selenium.webdriver.support import expected_conditions as EC 判断所需要的元素是否已经被加载出来

from selenium.webdriver.common.by import By 定位

WebDriverWait类是由WebDirver 提供的等待方法。显示等待明确的要等到某个元素的出现,在设置时间内每隔x秒去判断一下指定的元素是否加载完,加载完了就执行下一步,否则继续每隔x秒去判断,指定时间截止。如果超时就会抛出异常。

强制等待:傻瓜式等待,不智能

隐式等待:全局通用,只需设置一次,很智能(等到了就走,不会浪费时间)

显式等待:等待元素处于特定条件的时候使用,很智能(等到了就走,不会浪费时间)Selenium API高级_第12张图片

Selenium API高级_第13张图片Selenium API高级_第14张图片  

你可能感兴趣的:(selenium)