Selenium自动化测试工具使用方法汇总

作者:路痴队长 时间:2022-02-10 16:26:21 

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)

来源:https://www.cnblogs.com/We612/p/12370703.html

标签:Selenium,自动化,测试,工具
0
投稿

猜你喜欢

  • Python GUI布局尺寸适配方法

    2022-03-07 05:52:26
  • vue 单页应用和多页应用的优劣

    2024-04-30 10:44:18
  • 在ASP.NET 2.0中操作数据之三十一:使用DataList来一行显示多条记录

    2024-05-11 09:30:00
  • golang 实现tcp转发代理的方法

    2023-08-06 02:46:55
  • Python如何实现FTP功能

    2021-10-22 15:08:25
  • 利用xmlhttp和adodb.stream加缓存技术下载远程Web文

    2009-04-23 18:33:00
  • python解决汉字编码问题:Unicode Decode Error

    2022-12-18 21:22:53
  • Python八个自动化办公的技巧

    2023-09-14 07:58:19
  • 对比分析BN和dropout在预测和训练时区别

    2022-09-05 11:46:55
  • python中logging库的使用总结

    2022-10-29 09:36:28
  • 如何捕获人家站点的页面?

    2009-11-11 19:19:00
  • Django的用户模块与权限系统的示例代码

    2023-04-27 14:48:23
  • python中*args与**kwarsg及闭包和装饰器的用法

    2023-07-24 00:43:34
  • PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形

    2022-06-17 02:14:03
  • asp如何用JMail同时给多人发信?

    2010-06-12 12:52:00
  • Python实现远程调用MetaSploit的方法

    2022-07-17 05:40:31
  • Python模块搜索路径代码详解

    2021-07-11 10:37:17
  • python实现log日志的示例代码

    2023-11-29 13:25:49
  • Python编程实现微信企业号文本消息推送功能示例

    2022-09-30 19:45:19
  • pyhon如何把程序打包为whl

    2023-06-16 11:30:48
  • asp之家 网络编程 m.aspxhome.com