前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python学习之UI自动化常用的webdriver的10个方法

python学习之UI自动化常用的webdriver的10个方法

作者头像
吾爱乐享
发布2019-12-30 17:21:26
5880
发布2019-12-30 17:21:26
举报
文章被收录于专栏:吾爱乐享

webdriver常用的方法

1,clear():清除文本

2,send_keys():输入文本

3,click():点击元素

4,refresh():刷新页面

5,submit():提交,功能同click(),但用的没有click广泛

6,size:返回元素的尺寸

7,text:获取元素的文本

8,get_attribute(name):获取属性值

9,is_displayed():设置该元素是否用户可见,可见返回true,否则返回false

10,getPageSource():获取页面源码

代码语言:javascript
复制
#coding:utf-8
from selenium import webdriver
import time
import re
'''
webdriver常用的方法
1,clear():清除文本
2,send_keys():输入文本
3,click():点击元素
4,refresh():刷新页面
5,submit():提交,功能同click(),但用的没有click广泛
6,size:返回元素的尺寸
7,text:获取元素的文本
8,get_attribute(name):获取属性值
9,is_displayed():设置该元素是否用户可见,可见返回true,否则返回false
10,driver.page_source:获取页面源码
'''
class fenxiangbe:

    '''
    driver,驱动打开浏览器
    '''
    def driver(self):
        self.browser = webdriver.Chrome()
        self.browser.maximize_window()
        self.browser.get('https://www.fenxiangbe.com')
        self.browser.implicitly_wait(10)  # 隐形等待10s,页面加载完则继续,没有加载完等10s后继续
    '''
    登录
    '''

    def login(self):
        self.driver()
        self.browser.find_element_by_xpath('//a[@class="signin-loader"]').click()
        self.browser.implicitly_wait(10)  # 隐形等待10s,页面加载完则继续,没有加载完等10s后继续
        # 9,is_displayed():设置该元素是否用户可见,可见返回true,否则返回false
        time.sleep(1)
        isdisplay = self.browser.find_element_by_css_selector('.sign-info>a').is_displayed()
        if isdisplay:
            self.browser.find_element_by_css_selector('#inputEmail').send_keys('测试')
            self.browser.find_element_by_css_selector('#inputPassword').send_keys('ceshiceshi')
            self.browser.find_element_by_xpath('//form[@id="sign-in"]/div/input[1]').click()
        else:
            print('可以注册')

    ''' 
    登录后点击会员中心进入管理端操作
    '''
    def manage(self):
        self.login()
        #self.browser.implicitly_wait(10)  # 隐形等待10s,页面加载完则继续,没有加载完等10s后继续
        time.sleep(1)
        self.browser.find_element_by_xpath('//div[@class="topbar"]/a[last()]').click()
        self.browser.implicitly_wait(10)  # 隐形等待10s,页面加载完则继续,没有加载完等10s后继续
        self.browser.find_element_by_xpath('//ul[@class="usermenu"]/li[4]/a').click()
        #1,clear():清除文本
        self.browser.find_element_by_xpath('//ul[@class="user-meta"]/li[4]/input').clear()
        #2,send_keys():输入文本
        self.browser.find_element_by_xpath('//ul[@class="user-meta"]/li[4]/input').send_keys('测试{}'.format(self.datestr()))
        #3,click():点击元素
        self.browser.find_element_by_xpath('//input[@evt="info.submit"]').click()
        time.sleep(0.5)
        #4,refresh():刷新页面
        self.browser.refresh()
        #6,size:返回元素的尺寸
        sizes=self.browser.find_element_by_xpath('//input[@name="nickname"]').size
        print(sizes)#{'height': 34, 'width': 380}返回的尺寸的值
        #7,text:获取元素的文本
        texts=self.browser.find_element_by_xpath('//ul[@class="user-meta"]/li[4]/label').text
        print("{}是:测试{}".format(texts,self.datestr()))#返回的结果昵称是:测试1569491921,获取text是昵称
        #8,get_attribute(name):获取属性值
        attribute_type=self.browser.find_element_by_xpath('//input[@evt="info.submit"]').get_attribute('value')
        print('属性值是:{}'.format(attribute_type))#属性值是:确认修改资料,获取value里面的值
        self.browser.find_element_by_xpath('//ul[@class="site-nav site-navbar"]/li[@id="menu-item-173"]/a').click()
        #10,browser.page_source:获取页面源码
        page=self.browser.page_source
        self.browser.implicitly_wait(10)  # 隐形等待10s,页面加载完则继续,没有加载完等10s后继续
        #findall返回string中所有pattern想匹配的字符串,返回形式为元祖,findall(pattern,string,flags=0)
        find_all = re.findall('html" title="(.*?)">', page)
        for title in find_all:
            print(title)
        self.browser.close()
    def test(self):
        self.driver()
        # self.browser.find_element_by_xpath('//a[@class="signin-loader"]').click()
        # self.browser.implicitly_wait(10)  # 隐形等待10s,页面加载完则继续,没有加载完等10s后继续
        # isdisplay = self.browser.find_element_by_css_selector('.sign-info>a').is_displayed()
        # if isdisplay :
        #     print('可以登录')
        # else:
        #     print('可以注册')
        page = self.browser.page_source
        self.browser.implicitly_wait(10)  # 隐形等待10s,页面加载完则继续,没有加载完等10s后继续
        # findall返回string中所有pattern想匹配的字符串,返回形式为元祖,findall(pattern,string,flags=0)
        find_all = re.findall('html" title="(.*?)">', page)
        for title in find_all:
            print(title)
        self.browser.close()

    def datestr(self):
        times=int(time.time())
        return times

if __name__ == '__main__':
    fen=fenxiangbe()
    fen.manage()
    #fen.datestr()
    # fen.test()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-09-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档