zoukankan      html  css  js  c++  java
  • selenium自动化测试工具的使用总结

    1、设置无头浏览器模式

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options 
    chrome_options = Options()
    chrome_options.add_argument('- -headless')
    chrome_options.add_argument('- -disable-gpu')
    class XX(object):
        self.driver = webdriver.Chrome(chrome_options=chrome_options)# 设置无头
    

    2、设置屏幕尺寸

    self.driver.maximize_window() # 最大
    self.driver.get_window_size() # 获取窗口尺寸
    self.driver.set_window_size(1296, 1000) # 指定像素 宽1296  高1000
    

    3、通过xpath获取元素并单击

    element = self.driver.find_elements_by_xpath('//*[@id="disabled"]/li[3]/a') # element是获取的元素列表
    element [0].click()   
    

    4、关闭单个窗口

    # 关闭单个窗口
    self.driver.close()
    

    5、退出driver程序,关闭浏览器

    driver.quit()
    

    6、获取input标签 输入文字 执行回车

    from selenium.webdriver.common.keys import Keys
    # 输入主机名:spupa01bat04  回车查询
    element = self.driver.find_elements_by_xpath(input_enter_xpath)[0]
    element.send_keys('spupa01bat04')
    element.send_keys(Keys.ENTER)
    

    7、执行双击

    from selenium import webdriver
    from selenium.webdriver import ActionChains # 该类可执行鼠标动作:双击 拖拽等
    self.driver = webdriver.Chrome()
    self.acobj = ActionChains(self.driver)  
    checkName = '风险'
    # '" + checkName + "'是向标签xpath字符串路经引入的变量
    Xpath = "//span[text()='" + checkName + "']/../../..//span[text()='FSCapacity']"
    el_01 = self.driver.find_elements_by_xpath(Xpath)[0] # 获取元素
    self.acobj.double_click(el_01).perform()  # 执行双击
    self.driver.implicitly_wait(20)
    

    8、执行等待

    # 隐式等待:设置一个等待时间,如果在这个等待时间内,网页加载完成,则执行下一步;否则一直等待时间截止,然后再执行下一步。这样也就会有个弊端,程序会一直等待整个页面加载完成,直到超时,但有时候我需要的那个元素早就加载完成了,只是页面上有个别其他元素加载特别慢,我仍要等待页面全部加载完成才能执行下一步。
    self.driver.implicitly_wait(10)
    # 显示等待:配合该类的until()和until_not()方法,就能够根据判断条件而进行灵活地等待了。它主要的意思就是:程序每隔xx检查一次,如果条件成立了,则执行下一步,否则继续等待,直到超过设置的最长时间,然后抛出TimeoutException
    from selenium.webdriver.support.wait import WebDriverWait
    # 超时时间为30秒,每0.2秒检查1次,直到class="tt"的元素出现
    text = WebDriverWait(driver,30,0.2).until(lambda x:x.find_element_by_css_selector(".tt")).text
    print(text)
    # 强制等待:简单粗暴效率低
    from time import sleep
    sleep(5)
    

    9、浏览器全屏截图保存到指定路径

    png01_path = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'resource', 'png_codes.png')
    self.driver.save_screenshot(png01_path)
    

    10、select下拉框的选值处理

    from selenium.webdriver.support.select import Select
    # 定位下拉框对象
    select_element = self.driver.find_elements_by_xpath(select_xpath)[0]
    # 构建下拉框对象
    sel_obj = Select(select_element)
    # 通过value值进行选择:一周
    sel_obj.select_by_value('168h')
    

    11、# 浏览器位置

    # 获取浏览器位置
    position = driver.get_window_position()
    print(position)
    # 设置浏览器位置
    driver.set_window_position(100, 100)
    
  • 相关阅读:
    linux扩展分区
    linux开机出现initramfs无法进入系统
    openCV编译安装-MSCV-Windows10-Qt
    Qt一键部署配置(Qt程序打包)
    Part8 升序排序 和降序排序
    Part7-.简单查询1
    Part6-向表中插入数据
    Part5-修改表(添加字段、删除字段、查看删除是否成功)
    Part4-删除表
    Part3-复制表
  • 原文地址:https://www.cnblogs.com/We612/p/12370703.html
Copyright © 2011-2022 走看看