• (三) selenium元素定位和常用操作(下)


    上一篇:(二) selenium元素定位(上)_要开朗的spookypop的博客-CSDN博客

    本篇继续介绍常用的元素定位和常用操作。

    通过链接文本定位

    alerts弹窗

    浏览器窗口操作


    1、通过链接文本定位

    上图是一个返回首页的链接,点击后跳转到首页,元素定位关键代码:

    driver.find_element(By.LINK_TEXT, '返回首页')

    完整代码如下:

    1. from selenium import webdriver
    2. from selenium.webdriver.common.by import By
    3. from selenium.webdriver.chrome.service import Service as ChromeService
    4. from webdriver_manager.chrome import ChromeDriverManager
    5. try:
    6. service = ChromeService(executable_path=ChromeDriverManager().install())
    7. driver = webdriver.Chrome(service=service)
    8. driver.get('http://www.softwarebox.club/pages/OnlineTools/AutoLearn')
    9. # 点击链接返回首页
    10. driver.find_element(By.LINK_TEXT, '返回首页').click()
    11. driver.quit()
    12. except Exception as e:
    13. print('用例执行失败')
    14. print(e)

    2、alerts弹窗操作

    对于警告弹窗、确认框等,常用的操作是对话框确认、关闭弹窗、获取弹窗的内容等。代码实战演示这些操作。

    用户注册测试用例:

    步骤1:浏览器打开注册页面

    步骤2:输入符合需求格式的用户名

    步骤3:输入不符合格式要求的密码

    预期结果:注册失败,弹窗提示密码错误信息

    上述测试用例转换为代码如下

    1. from selenium import webdriver
    2. from selenium.webdriver.common.by import By
    3. from selenium.webdriver.chrome.service import Service as ChromeService
    4. from selenium.webdriver.support import expected_conditions
    5. from selenium.webdriver.support.wait import WebDriverWait
    6. from webdriver_manager.chrome import ChromeDriverManager
    7. # 测试用户注册,输入不符合格式要求的密码,注册失败
    8. try:
    9. service = ChromeService(executable_path=ChromeDriverManager().install())
    10. driver = webdriver.Chrome(service=service)
    11. driver.get('http://www.softwarebox.club/pages/OnlineTools/AutoLearn')
    12. driver.find_element(By.ID, 'username').send_keys('小黄')
    13. # 输入的密码不符合格式要求(注:密码必须为6-18位,大小写字母和数字的组合)
    14. driver.find_element(By.ID, 'password').send_keys('123456')
    15. # 点击注册按钮
    16. driver.find_element(By.CSS_SELECTOR, '#contentmain > section > div.center > form > button:nth-child(7)').click()
    17. wait = WebDriverWait(driver, 10)
    18. # 等待弹窗显示
    19. alert = wait.until(expected_conditions.alert_is_present())
    20. # 验证弹窗信息不是"注册成功"
    21. assert alert.text != '注册成功', '用例不通过'
    22. print('弹窗信息:' + alert.text)
    23. # 点击弹窗的确认按钮,关闭弹窗
    24. alert.accept()
    25. print('用例通过')
    26. driver.quit()
    27. except Exception as e:
    28. print('用例执行失败')
    29. print(e)

    运行结果:

    1. 弹窗信息:密码必须为6-18位,大小写字母和数字的组合
    2. 用例通过
    3. Process finished with exit code 0

    3、浏览器窗口操作

    常用操作如下:

    driver.refresh()

    当前页面刷新

    driver.maximize_window()

    浏览器窗口最大化

    driver.set_windows_size()

    设置浏览器窗口大小

    driver.close()

    关闭浏览器窗口

    driver.forward()

    浏览器前进一页

    driver.back()

    浏览器返回上一页

    下一篇:(四)selenium自动化测试之上传本地文件_要开朗的spookypop的博客-CSDN博客_selenium上传本地文件

  • 相关阅读:
    Vim 常用指令
    11.8知识总结(web应用程序、手写web框架、Django框架等)
    计算机毕业设计ssm基于疫情防控下社区管理平台my3tu系统+程序+源码+lw+远程部署
    葡萄糖-聚乙二醇-醛基/羟基 Glucose-PEG-CHO/OH
    自定义类型--结构体(C语言)
    LLM App ≈ 数据ETL管线
    Linux下的网络编程——C/S模型TCP(二)
    8086汇编-22第一个程序03
    shell之ipcrm命令
    JavaScript 处理数组函数的总结
  • 原文地址:https://blog.csdn.net/sinat_23377479/article/details/126119955