web页面操作之等待、切换

一.强制等待

    time.sleep(等待时间)

二.显示等待

    明确等到摸个条件满足之后,再执行下一步操作

    程序默认每隔0.5秒看一眼,如果条件成立了,则执行下一步,否则继续等待,直到超过设置的最长时间,然后抛出TimeoutException

    from selenium.webdriver.support.ui import WebDriverWait


    wait=WebDriverWait(driver,10)

    until 直到达成条件就不再等待

    until_not 直到不满足条件就不再等待

    from selenium.webdriver.supportimport expected_conditions as ec

    wait.until(ec.presence_of_element_located((By.XPATH,''))) 返回的是一个元素

    ec等待条件:

        判断当前页面的title是否精确等于预期

        title_is

        判断当前页面的title是否包含预期字符串

        title_contains

        判断某个元素是否被加到了dom树里,并不代表该元素一定可见

        presence_of_element_located

        判断某个元素是否可见,可见代表元素非隐藏

        visibility_of_element_located

        跟上面的方法做一样的事情,只是上面的方法要传入locator,这个方法直接传定位到的element就好了

        visibility_of

        判断是否至少有一个元素存在于dom树种

        presence_of_all_elements_located

        判断某个元素中的text是否包含预期的字符串

        text_to_be_present_in_element

        判断某个元素中的value属性是否包含了预期的字符串

        text_to_be_present_in_element_value

        判断该frame是否可以switch进去,如果可以的返回true并switch进入,否则返回false

        frame_to_be_available_and_switch_to_it

        判断某个元素中是否不选在与dom树或不可见

        invisibility_of_element_located

        判断某个元素是否可见并且是enable的,这样的话才叫clickable

        element_to_be_clickable

        等某个元素从dom树中移除,这个方法返回的True或False

        staleness_of

        判断某个元素是否被选中了,一般用在下拉列表

        element_to_be_selected

        跟上面的方法一样,只是这要方法传入locator

        element_located_to_be_selected

        判断某个元素的选中状态是否符合预期

        element_selection_state_to_be

        跟上面的方法一样,只是这个方法传入locator

        element_located_selection_state_to_be

        判断页面上是否存在alert

        alert_is_present

三.隐形等待

    driver.implicitly_wait(10)

    设置最长等待时间,在这个时间内只要有个时间点加载完成,则执行下一步代码,在整个driver会话周期内,设置一次即可,全局都可用,一次会话只调用一次

四.iframe操作

    iframe:一个网页里面嵌套了另外一个框架/页面

    如果我们要操作的元素,在内嵌的iframe页面中,那么必须要从当前页面,切换到iframe当中,然后在查找元素并执行操作

    切换iframe

    1.driver.switch_to.frame(iframe的name属性\iframe的WebElement对象\iframe的下标(当前页面中第几个iframe))

     2.driver.frame_to_be_available_and_switch_to_it(iframe的name属性\iframe的WebElement对象\iframe的下标(当前页面中第几个iframe)

    退出iframe

    driver.switch_to.default_content()

    driver.switch_to.parent_frame()

五.弹出框操作

    弹出框的种类:

            1.页面弹框

            2.alert弹出框

    alert弹出框操作

        1.使用switch_to方法先切换到浏览器弹出框

            alert = driver.switch_to.alert

        2.alert类提供的操作方法    

            alert.dismiss()  关闭

            alert.accept() 接受

            alert.text() 获取弹出框的内容

            alert.send_keys() 往弹出框里面输入文本

六.窗口切换

1.获取当前所有的窗口

    windows  = driver.window_handles

 2.切换到指定的窗口

    driver.switch_to.window(windows[-1]) 打开最新的窗口

    driver.switch_to.window(windows[0])切换到第一个窗口

 3.获取当前窗口的句柄

    driver.current_wondow_handle

七.submit方法    

    如果是在form中提交,可以直接使用submit方法

你可能感兴趣的:(web页面操作之等待、切换)