在操作各项页面元素之前,先介绍下如何通过Python代码来找到这些元素。WebDriver提供了18种元素定位方法,共分为两类(定位当个元素、定位组元素),本节先举例详细介绍下selenium4-定位单个页面元素的方法,注意和selenium3元素定位方法之间的区别。
from selenium import webdriver from selenium.webdriver.chrome.service import Service # 管理驱动程序的启动和停止 from selenium.webdriver.common.by import By # 通过ID定位页面元素 service = Service(r"C:\Users\USER\AppData\Local\Programs\Python\Python37\chromedriver.exe") driver = webdriver.Chrome(service=service) driver.get("http://www.baidu.com") driver.find_element(By.ID, 'kw').send_keys('selenium') # 定位到百度搜索框,输入关键词 sleep(2) driver.quit() # 通过name定位页面元素 service = Service(r"C:\Users\USER\AppData\Local\Programs\Python\Python37\chromedriver.exe") driver = webdriver.Chrome(service=service) driver.get("http://www.baidu.com") driver.find_element(By.NAME, 'wd').send_keys('selenium') sleep(2) driver.quit() # 通过clas name定位页面元素 service = Service(r"C:\Users\USER\AppData\Local\Programs\Python\Python37\chromedriver.exe") driver = webdriver.Chrome(service=service) driver.get("http://www.baidu.com") driver.find_element(By.CLASS_NAME, 's_ipt').send_keys('selenium') sleep(2) driver.quit() # 通过tag name定位页面元素 service = Service(r"C:\Users\USER\AppData\Local\Programs\Python\Python37\chromedriver.exe") driver = webdriver.Chrome(service=service) driver.get("http://www.baidu.com") driver.find_element(By.TAG_NAME, 'input').send_keys('selenium') sleep(2) driver.quit()
注意:一般情况下tag name不唯一,这种方法不建议使用,在下个小节中我们将采用组元素定位,使用tag name来实现定位百度搜索框。 # 通过链接中的全部文字定位元素 service = Service(r"C:\Users\USER\AppData\Local\Programs\Python\Python37\chromedriver.exe") driver = webdriver.Chrome(service=service) driver.get("http://www.baidu.com") driver.find_element(By.LINK_TEXT, '新闻').click() sleep(2) driver.quit() # 通过链接中的部分文字定位元素 service = Service(r"C:\Users\USER\AppData\Local\Programs\Python\Python37\chromedriver.exe") driver = webdriver.Chrome(service=service) driver.get("http://www.baidu.com") driver.find_element(By.PARTIAL_LINK_TEXT, '闻').click() sleep(2) driver.quit() # 通过XPath定位元素 service = Service(r"C:\Users\USER\AppData\Local\Programs\Python\Python37\chromedriver.exe") driver = webdriver.Chrome(service=service) driver.get("http://www.baidu.com") driver.find_element(By.XPATH, '//*[@id="s-top-left"]/a[1]').click() sleep(2) driver.quit() # 通过CSS定位元素 service = Service(r"C:\Users\USER\AppData\Local\Programs\Python\Python37\chromedriver.exe") driver = webdriver.Chrome(service=service) driver.get("http://www.baidu.com") driver.find_element(By.XPATH, '//*[@id="kw"]').send_keys('selenium') sleep(2) driver.find_element(By.XPATH, '//*[@id="su"]').click() sleep(2) driver.quit()
后面小节我们继续讲解selenium4-定位组元素的方法。
标签:定位,Service,service,webdriver,元素,driver,selenium4,单个,页面 From: https://www.cnblogs.com/zxt518/p/16797102.html