zoukankan      html  css  js  c++  java
  • 记录一个web自动化工具

    Selenium框架

    使用方法

    from selenium import webdriver
    
    # 这里使用的是谷歌浏览器 还有很多的浏览器可以选择 wd
    = webdriver.Chrome(r'd:webdriverschromedriver.exe') wd.get('http://cdn1.python3.vip/files/selenium/sample2.html') # 先根据name属性值 'innerFrame',切换到iframe中 wd.switch_to.frame('innerFrame') # 根据 class name 选择元素,返回的是 一个列表 elements = wd.find_elements_by_class_name('plant') for element in elements:
    print(element.text) # 切换回 最外部的 HTML 中 wd.switch_to.default_content() # 然后再 选择操作 外部的 HTML 中 的元素 wd.find_element_by_id('outerbutton').click() wd.quit()

    xpath 选择器的使用方法

    # 使用上图的方法可以快速的取到xpath的位置
    driver.find_elements_by_xpath("/html/body/div[4]/div[4]")

    示例:

    以下的方法已经失效了自供参考如有错误请谅解

    from selenium import webdriver
    
    # 注意如果要使用谷歌的浏览器需要下载chromedriver.exe
    driver = webdriver.Chrome('F:下载chromedriver.exe')
    
    driver.get('https://www.baidu.com/')
    
    
    # 模拟登录
    class Mock_login():
        def __init__(self, browser, url_login, username, password):
            self.browser = browser
            self.url_login = url_login
            self.username = username
            self.password = password
    
            # 这里就不多写判断机制了(如:url是否可以访问,浏览器路径是否正常....) 就直接写主要功能
    
            # 创建一个实例
            self.wd = webdriver.Chrome(self.browser)
            # 隐形等待时间(功能:等待网络IO和js渲染)
            self.wd.implicitly_wait(10)
    
        def run(self):
            self.wd.get(self.url_login)
    
            # .click()点击
            self.wd.find_element_by_xpath('/html/body/div[2]/div[1]/div[4]/a[2]').click()
            self.wd.find_element_by_name('normal').click()
            # 选择到用户名的输入框
            username_bot = self.wd.find_element_by_name('userName')
            # 输入内容
            username_bot.send_keys(self.username)
            # 选择到密码的输入框
            password_bot = self.wd.find_element_by_name('password')
            # 输入内容
            password_bot.send_keys(self.password)
            # 登录
            self.wd.find_element_by_id('TANGRAM__PSP_11__submit').submit()
    
            # 退出浏览器
            self.wd.quit()
    
    if __name__ == '__main__':
        Mock_login('F:下载chromedriver.exe','https://www.baidu.com/','aa','123')

     

  • 相关阅读:
    django模型中的抽象类(abstract)
    http,tcp,udp的报文格式
    关于HTTP请求GET和POST的区别
    SQL语言分为四类,每类分别是?各包括什么?
    Python中为什么可以通过bin(n & 0xffffffff)来获得负数的补码?
    python中sorted和sorted 、reversed和reverse的使用。
    Django Cannot assign "A1": "B1" must be a "C1" instance. 错误信息
    python反转链表和成对反转
    Python单例模式的四种方法
    python的列表list和集合set操作
  • 原文地址:https://www.cnblogs.com/wangwen022/p/13363993.html
Copyright © 2011-2022 走看看