• selenium4.0的一些基本用法


    1、初始化浏览器、刷新、最大化、后退、前进、截图

    1. import time
    2. from selenium import webdriver
    3. from selenium.webdriver.common.by import By
    4. #初始化浏览器为谷歌浏览器
    5. chr=webdriver.Chrome()
    6. # 无界面的浏览器
    7. # option = webdriver.ChromeOptions()
    8. # option.add_argument("headless")
    9. # chr = webdriver.Chrome(options=option)
    10. #浏览器最大化
    11. chr.maximize_window()
    12. chr.get("https://www.baidu.com")
    13. # chr.get("https://www.jd.com/")
    14. #后退
    15. chr.back()
    16. #暂停2s
    17. time.sleep(2)
    18. #前进
    19. chr.forward()
    20. #刷新
    21. chr.refresh()
    22. #截图
    23. chr.get_screenshot_as_file('截图.png')
    24. #点击
    25. chr.find_element(By.ID,'kw').click()
    26. #输入
    27. chr.find_element(By.ID,'kw').send_keys("saa")
    28. time.sleep(2)
    29. #清除输入框内容
    30. chr.find_element(By.ID,'kw').clear()
    31. time.sleep(2)
    32. #关闭浏览器
    33. chr.close()

    2、单个元素定位的方法

    selenium4使用的时候需要导入模块    from selenium.webdriver.common.by import By

    find_element(By.XPATH, "//*[@id='search']")

    find_element(By.CLASS_NAME, "element_class_name")

    find_element(By.ID,"element_id")

    find_element(By.NAME, "element_name")

    find_element(By.LINK_TEXT,"element_link_text")

    find_element(By.CSS_SELECTOR, "element_css_selector")

    find_element(By.TAG_NAME, "element_tag_name")

    find_element(By.PARTIAL_LINK_TEXT, "element_partial_link_text")

    3、多个元素定位的方法

    与单个元素的定位方式类似,把find_element改成find_elements即可

    4、定位select类型的下拉框

    1. select_by_index() # 通过索引定位;注意:>index索引是从“0”开始。
    2. select_by_value() # 通过value值定位,va>lue标签的属性值。
    3. select_by_visible_text() # 通过文本值定位,即显>示在下拉框的值。

    Select(chr.find_element_by_name("姓名")).select_by_index(1)

    或者分开写

    a=chr.find_element_by_name("姓名")

    Select(a).select_by_index(1)

    5、多窗口切换

    current_window_handle:获取当前窗口的句柄

    window_handles:返回当前浏览器的所有窗口的句柄

    switch_to_window():用于切换到对应的窗口

    1. chr.get("https://www.baidu.com")
    2. a=chr.current_window_handle
    3. chr.execute_script('window.open()')
    4. chr.switch_to.window(chr.window_handles[1])
    5. chr.get("https://www.jd.com/")
    6. # chr.switch_to.window(chr.window_handles[0])
    7. chr.switch_to.window(a)

    6、iframe切换

    driver.switch_to.frame(driver.find_element_by_xpath("//iframe[contains(@src,'myframe')]"))

    #回到默认的iframe

    driver.switch_to.default_content()

    7、键盘操作

    send_keys(Keys.BACK_SPACE):删除键(BackSpace)

    send_keys(Keys.SPACE):空格键(Space)

    send_keys(Keys.TAB):制表键(TAB)

    send_keys(Keys.ESCAPE):回退键(ESCAPE)

    send_keys(Keys.ENTER):回车键(ENTER)

  • 相关阅读:
    Kotlin语法学习(二)
    华为云Stack的学习(七)
    Unity3D DOTS JobSystem物理引擎的使用详解
    FPGA高端项目:图像采集+GTX+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持
    protel9s【硬件课程设计】
    Mysql的事务以及存储引擎
    【学习笔记44】JavaScript的事件传播
    UE5C++学习(二)--- 角色简单连击
    [GWCTF 2019]枯燥的抽奖
    RabbitMQ系列【16】AmqpTemplate接口详解
  • 原文地址:https://blog.csdn.net/weixin_48626846/article/details/125564074