栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

提升之路--从0开始学web自动化(4)--selenium二次封装和切换

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

提升之路--从0开始学web自动化(4)--selenium二次封装和切换

css介绍

Webside = html+css+javascript

Xpath VS css

-css整体上比xpath 表达更简洁

-css查找速度比xpath更快

-xpath功能比css强,可以从内往外查找

-css不支持通过文本查找元素

css 选择器

css 选择器

基本语法

id属性: 标签#属性值

Xpath: //input[@id = “kw”]

Css : input#kw

Class属性: 标签.属性名

Xpath: //input[@class=”s_ipt”]

Css: input.s_ipt

属性:

-xpath: //input[@name=”wd”]

-css: input[name=wd]

selenium二次封装

封装成类

driver:Chrom表示该参数类型是Chrom,之后使用该参数能自动显示浏览器所有的方法

初始化函数,传入浏览器对象,要赋值给类里的属性,以便之后的函数都能使用

封装get方法

访问url地址

    def goto(self,url):

        if url.find("http://") != -1:
            return self.driver.get(url)
        else:
            return self.driver.get(self.host + url)

表示如果传入的url能找到http:// 就直接访问url,否则就要加上host

回顾:通过find函数查找字符串,如果能找到,返回索引,如果不能找到,返回-1

封装send方法

输入框操作,参数为xpath方法和表达式组成的列表或者元组(By.XPATH,”表达式”),作为设置显性等待的条件时所需要查找的元素, 输入的内容

    #输入框操作,参数为表达式,输入的内容
    def send(self,locator,words):
        wait = WebDriverWait(self.driver, timeout=10)
        condiction = when.visibility_of_element_located(locator)
        input_el = wait.until(condiction)
        input_el.send_keys(words)

注意:如果send方法里没有使用显性等待,那么locator仍然要传入一个元组(By.XPATH,”表达式”),然后查找元素时候用*拆分,表示位置不定长参数

    def send_1(self,locator,words):
        input_el = self.driver.find_element(*locator)
        input_el.send_keys(words)

封装click方法

点击操作,参数为xpath方法和表达式组成的列表或者元组(By.XPATH,”表达式”)作为设置显性等待的条件时所需要查找的元素

    #点击操作,参数为表达式
    def click(self,locator):
        wait = WebDriverWait(self.driver, timeout=10)
        condition = when.element_to_be_clickable(locator)
        el = wait.until(condition)
        el.click()

封装好之后,代码会变得简洁

切换

窗口切换

Browser.swich_to.window()

参数传入窗口名称(字符串),可以先获取所有窗口(列表),然后通过索引找到对应窗口的名称

详情:https://blog.csdn.net/conlin233/article/details/121422594#t1

iframe切换

如果元素标签有