python Selenium4 automation

python selenium use

Some functions have changed after seleninm was updated. Simply record them.

Install

No change

pip install selenium

Browser driver

Selenium requires a driver to interact with the browser of choice

Browser download link
Chrome https://chromedriver.chromium.org/downloads
Edge https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Firefox https://github.com/mozilla/geckodriver/releases
Safari https://webkit.org/blog/6900/webdriver-support-in-safari-10

use

  1. open link

    # 导入 建议一步步尝试
    from selenium import webdriver
    
    # 创建一个浏览器对象
    # browser=webdriver.Chrome()   #谷歌浏览器对象
    browser = webdriver.Firefox()
    
    # 打开浏览器并访问 http://selenium.dev/
    browser.get('http://selenium.dev/')
    
  2. positioned element

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    
    browser = webdriver.Firefox()
    
    browser.get('https://www.baidu.com')
    
    elem = browser.find_element(By.NAME, 'wd')  # 通过元素的name来定位元素
    # elem = browser.find_element(By.ID,'元素id') # 通过元素的id来定位元素
    # elem = browser.find_element(By.XPATH,"xpath路径") # 通过元素的xpath来定位元素
    # find_elements 则是用于定位多个元素
    
    elem.send_keys('hudie' + Keys.RETURN) # 向得到的输入框元素内传入值'hudie' 并 回车
    
    browser.quit()
    
  3. perform operations

    # 获取浏览器当前页面的标题
    browser.title
    # 获取浏览器当前地址栏的URL
    browser.current_url
    # 刷新页面
    browser.refresh()
    # 返回上一个页面
    browser.back()
    # 回到下一个页面
    browser.forward()
    
    
    # 发送文本到元素 下面elem为定位获取到的元素
    elem.send_keys('Selenium')
    # 鼠标操作
    
    
    from selenium.webdriver import ActionChains	
    # 左键单击元素
    elem.click() # 或者 ActionChains(browser).click(elem).perform()
    # 左键双击
    ActionChains(browser).double_click(elem).perform()
    # 右键单击元素
    ActionChains(browser).context_click(elem).perform() 
    
    # 拖动元素
    ActionChains(browser).drag_and_drop(elem, 目标位置).perform()
    # 鼠标移动到元素
    ActionChains(browser).move_to_element(elem).perform()
    

Above, the rest will be added later

Guess you like

Origin blog.csdn.net/aifengaopeng/article/details/131403732