当前位置:   article > 正文

[记录]Mac环境下,使用selenium操作chrome示例_selenium mac

selenium mac

Mac环境下,如何安装selenium并实现驱动,详见:selenium安装说明

示例1,使用官方示例测试

  1. # 导入包
  2. from selenium import webdriver
  3. from selenium.webdriver.common.by import By
  4. # 使用驱动实例开启会话
  5. driver = webdriver.Chrome()
  6. # 在浏览器上执行操作,导航到一个网站
  7. driver.get("https://www.selenium.dev/selenium/web/web-form.html")
  8. # 请求浏览器信息,实例,请求浏览器的信息,包括窗口句柄、浏览器尺寸/位置、cookie、警报等
  9. title = driver.title
  10. print(title)
  11. # 建立等待策略
  12. driver.implicitly_wait(0.5)
  13. # 发送命令,查找元素
  14. text_box = driver.find_element(by=By.NAME, value="my-text")
  15. submit_button = driver.find_element(by=By.CSS_SELECTOR, value="button")
  16. # 操作元素
  17. text_box.send_keys("Selenium")
  18. submit_button.click()
  19. # 获取元素信息
  20. message = driver.find_element(by=By.ID, value="message")
  21. text = message.text
  22. print(text)
  23. # 结束会话
  24. driver.quit()

示例2:基于白月黑羽示例测试

(1)获取元素测试demo1

  1. from selenium import webdriver
  2. # 导入驱动
  3. from selenium.webdriver.chrome.service import Service
  4. from selenium.webdriver.common.by import By
  5. # 设置属性
  6. options = webdriver.ChromeOptions()
  7. options.add_experimental_option('detach', True) # 不自动关闭浏览器
  8. options.add_argument('--start-maximized') # 窗口最大化
  9. driver = webdriver.Chrome(service=Service(r'/Users/linql/Downloads/chromedriver-mac-x64/chromedriver'), options=options)
  10. driver.get('https://www.baidu.com')
  11. '''
  12. # 想要在首页输入框,输入检索内容"白月黑雨"
  13. # 下面是通过chrome浏览器的检查,定位到这个输入框的HTML元素
  14. # <input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
  15. # 选择元素方式1,根据ID方式[通常,唯一]
  16. ID_kw = driver.find_element(By.ID,"kw")
  17. ID_kw.send_keys("白月黑雨")
  18. # 选择元素方式2,通过XPATH方式
  19. xpath_kw = driver.find_element(by=By.XPATH, value="//*[@id='kw']")
  20. xpath_kw.send_keys("白月黑雨")
  21. # 输入"\n",表示点回车。
  22. # 选择元素方式3,通过class属性方式[不一定唯一]
  23. class_kw = driver.find_element(by=By.CLASS_NAME,value="s_ipt")
  24. class_kw.send_keys("白月黑雨\n")
  25. '''
  26. ID_kw = driver.find_element(By.ID, "kw")
  27. ID_kw.send_keys("白月黑雨")
  28. '''
  29. # 操作按钮
  30. # <input type="submit" id="su" value="百度一下" class="bg s_btn">
  31. '''
  32. ID_submit = driver.find_element(By.ID, "su")
  33. ID_submit.click()

(2)获取元素测试demo2

  1. from selenium import webdriver
  2. # 导入驱动
  3. from selenium.webdriver.chrome.service import Service
  4. from selenium.webdriver.common.by import By
  5. # 设置属性
  6. options = webdriver.ChromeOptions()
  7. options.add_experimental_option('detach', True) # 不自动关闭浏览器
  8. options.add_argument('--start-maximized') # 窗口最大化
  9. driver = webdriver.Chrome(service=Service(r'/Users/linql/Downloads/chromedriver-mac-x64/chromedriver'), options=options)
  10. driver.get('https://cdn2.byhy.net/files/selenium/sample1.html')
  11. # 设置全局等待时长
  12. # 后续执行所有的find_elements或find_element,都会采用此策略
  13. driver.implicitly_wait(5)
  14. # 查找同属性的多个元素
  15. # 查找class值为plant
  16. class_elements = driver.find_elements(By.CLASS_NAME, "plant")
  17. for class_element in class_elements:
  18. print(class_element.text)
  19. print("-----")
  20. # 查找,所有span标签
  21. tag_elements = driver.find_elements(By.TAG_NAME, "span")
  22. for tag_element in tag_elements:
  23. print(tag_element.text)
  24. print("-----"*2)
  25. # 查找ID为container包裹下的所有span标签
  26. tag_element = driver.find_element(By.ID,'container')
  27. tag_element_spans = tag_element.find_elements(By.TAG_NAME,'span')
  28. for tag_element_span in tag_element_spans:
  29. print(tag_element_span.text)
  30. print("-----"*3)

(3)获取输入框元素

  1. from selenium import webdriver
  2. # 导入驱动
  3. from selenium.webdriver.chrome.service import Service
  4. from selenium.webdriver.common.by import By
  5. # 设置属性
  6. options = webdriver.ChromeOptions()
  7. options.add_experimental_option('detach', True) # 不自动关闭浏览器
  8. options.add_argument('--start-maximized') # 窗口最大化
  9. driver = webdriver.Chrome(service=Service(r'/Users/linql/Downloads/chromedriver-mac-x64/chromedriver'), options=options)
  10. driver.get('https://cdn2.byhy.net/files/selenium/test3.html')
  11. # 设置全局等待时长
  12. # 后续执行所有的find_elements或find_element,都会采用此策略
  13. driver.implicitly_wait(5)
  14. input_element = driver.find_element(By.ID,"input1")
  15. input_element.clear()
  16. input_element.send_keys("白月黑雨")

(4)获取整个元素对应的HTML

1)innerHTML:
  从对象的起始位置到终止位置的全部内容, 不包括HTML标签。
2)outerHTML:
  除了包含innerHTML的全部内容外, 还包含对象标签本身。

  1. from selenium import webdriver
  2. # 导入驱动
  3. from selenium.webdriver.chrome.service import Service
  4. from selenium.webdriver.common.by import By
  5. # 设置属性
  6. options = webdriver.ChromeOptions()
  7. options.add_experimental_option('detach', True) # 不自动关闭浏览器
  8. options.add_argument('--start-maximized') # 窗口最大化
  9. driver = webdriver.Chrome(service=Service(r'/Users/linql/Downloads/chromedriver-mac-x64/chromedriver'), options=options)
  10. driver.get('https://cdn2.byhy.net/files/selenium/sample1.html')
  11. # 设置全局等待时长
  12. # 后续执行所有的find_elements或find_element,都会采用此策略
  13. driver.implicitly_wait(5)
  14. # 要获取整个元素对应的HTML文本内容
  15. outerHTML_element = driver.find_element(By.ID,'container')
  16. print(outerHTML_element.get_attribute("outerHTML"))
  17. print('----- '*2)
  18. innerHTML_element = driver.find_element(By.ID,'container')
  19. print(innerHTML_element.get_attribute("innerHTML"))

(5)获取元素文本内容

  1. from selenium import webdriver
  2. # 导入驱动
  3. from selenium.webdriver.chrome.service import Service
  4. from selenium.webdriver.common.by import By
  5. # 设置属性
  6. options = webdriver.ChromeOptions()
  7. options.add_experimental_option('detach', True) # 不自动关闭浏览器
  8. options.add_argument('--start-maximized') # 窗口最大化
  9. driver = webdriver.Chrome(service=Service(r'/Users/linql/Downloads/chromedriver-mac-x64/chromedriver'), options=options)
  10. driver.get('https://www.baidu.com')
  11. ID_kw = driver.find_element(By.ID, "kw")
  12. ID_kw.send_keys("白月黑雨")
  13. # 获取元素文本内容[输入框]
  14. ID_kw = driver.find_element(By.CLASS_NAME, 's_ipt')
  15. input_text_Content = ID_kw.get_attribute('value')
  16. print(input_text_Content)
  17. # 获取元素文本内容[按钮]
  18. s_btn = driver.find_element(By.ID, 'su')
  19. btn_text_Content = s_btn.get_attribute('textContent')
  20. print(btn_text_Content)
  21. # 退出
  22. driver.quit()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/374066
推荐阅读
相关标签
  

闽ICP备14008679号