Skip to content

PageWait

虫师 edited this page Jan 21, 2019 · 3 revisions

虽然,在PageElement 类中设置了timeout参数,但他只检查元素时否存在,有时候无法操作元素并不是因为元素不存在,可能是元素当前不可见,或者其他的什么原因,因此单独封装了PageWait类。

用法也比较简单,在操作元素之前,可以先用PageWait检查元素是否可见,这相当于显示等待。

from selenium import webdriver
from poium import Page, PageWait, PageElement


class MailPage(Page):
    frame = PageElement(css="div#loginDiv > iframe")
    user = PageElement(name="email")


def test_page_wait():
    """测试元素等待"""
    dr = webdriver.Chrome()

    page = MailPage(dr)
    page.get("https://www.126.com/")

    PageWait(page.frame)
    page.switch_to_frame(page.frame)

    PageWait(page.user)
    page.user.send_keys("fnngj")

    dr.quit()

强烈建议,在自动化测试中抛弃sleep()方法,他会严重拖慢脚本整体运行时间。

Clone this wiki locally