自动化测试常用的方法(Python版)

Selenium的官方文档链接为:https://www.selenium.dev/documentation/zh-cn/。该文档包含了Selenium使用方法的详细介绍,包括了常见的定位和操作方式,同时还提供了各种语言版本的API文档。根据需要选择相应的文档可以帮助您更好地了解和使用Selenium。

安装Selenium,定位元素 

  1. 安装Selenium库:
!pip install selenium
  1. 导入Selenium库和驱动程序:
from selenium import webdriver
  1. 创建一个WebDriver实例,打开浏览器:
# Firefox浏览器
firefox_options = webdriver.FirefoxOptions()
driver = webdriver.Firefox(options=firefox_options)

# Google Chrome浏览器
chrome_options = webdriver.ChromeOptions()
driver = webdriver.Chrome(options=chrome_options)
  1. 访问网站:
driver.get('https://www.example.com')
  1. 查找网页元素:
# 根据元素id查找
element = driver.find_element_by_id('element_id')

# 根据元素name查找
element = driver.find_element_by_name('element_name')

# 根据元素的CSS类名查找
element = driver.find_element_by_class_name('element_classname')

# 根据元素标签名查找
element = driver.find_element_by_tag_name('element_tag')

# 根据元素链接文字查找
element = driver.find_element_by_link_text('element_text')

# 根据元素部分链接文字查找
element = driver.find_element_by_partial_link_text('element_partial_text')

# 根据元素Xpath查找
element = driver.find_element_by_xpath('element_xpath')

# 根据元素CSS选择器查找
element = driver.find_element_by_css_selector('element_css_selector')
  1. 操作网页元素:
# 填写表单
element.send_keys('input_text')

# 点击按钮
element.click()

# 获取元素属性值
attribute_value = element.get_attribute('attribute_name')

# 获取元素文本内容
text_content = element.text

# 判断元素是否可见
visible = element.is_displayed()

# 判断元素是否存在
exists = element.is_enabled()
  1. 关闭浏览器:
driver.quit()


 对页面进行操作

  1. 等待页面元素加载完成:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'element_id')))

这段代码会等待10秒钟,如果页面上的IDelement_id的元素加载完成,就返回该元素对象,然后你可以根据需要对该元素进行操作。

  1. 管理浏览器窗口:
# 调整浏览器大小
driver.set_window_size(1024, 768)

# 最大化浏览器窗口
driver.maximize_window()

# 最小化浏览器窗口
driver.minimize_window()
  1. 处理弹出窗口:
# 切换到弹出窗口
window_handle = driver.window_handles[-1]
driver.switch_to.window(window_handle)

# 关闭弹出窗口
driver.close()

# 切换回原窗口
driver.switch_to.window(driver.window_handles[0])
  1. 处理frame/iframe:
# 切换到指定的frame/iframe
frame = driver.find_element(By.XPATH, 'element_xpath')
driver.switch_to.frame(frame)

# 切换回父级frame/iframe
driver.switch_to.parent_frame()

# 切换回默认上下文
driver.switch_to.default_content()
  1. 执行JavaScript代码:
# 通过JavaScript实现滚动条滚动到页面底部
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

# 通过JavaScript获取页面滚动条的位置
scroll_pos = driver.execute_script("return window.pageYOffset;")

  • 键盘输入:element.send_keys(text)
# 在搜索框中输入关键字,并按回车
search_box = driver.find_element_by_name("q")
search_box.send_keys("Python Selenium")
search_box.send_keys(Keys.RETURN)
  • 模拟鼠标点击:element.click()
# 点击页面上的某个链接
link = driver.find_element_by_link_text("Python.org")
link.click()
  • 模拟鼠标悬停:ActionChains(driver).move_to_element(element).perform()
# 悬停鼠标在某个元素上
menu = driver.find_element_by_class_name("menu")
ActionChains(driver).move_to_element(menu).perform()
  • 模拟鼠标拖拽:ActionChains(driver).drag_and_drop(source, target).perform()
# 将一个元素拖拽到另一个元素上
source = driver.find_element_by_id("source")
target = driver.find_element_by_id("target")
ActionChains(driver).drag_and_drop(source, target).perform()
  • 模拟鼠标右键点击:ActionChains(driver).context_click(element).perform()
# 右键点击某个元素
button = driver.find_element_by_id("button")
ActionChains(driver).context_click(button).perform()
  • 模拟键盘组合键:ActionChains(driver).key_down(key).key_up(key).perform()
# 模拟 Ctrl+C 复制文本的操作
text = driver.find_element_by_id("text")
text.send_keys(Keys.CONTROL, "a")
text.send_keys(Keys.CONTROL, "c")

天气再热也暖不了寒冷的心

猜你喜欢

转载自blog.csdn.net/zzbzxzzdf/article/details/130913790