欢迎访问宙启技术站
智能推送

使用selenium.webdriver.common.by.By定位可点击的元素

发布时间:2024-01-04 11:03:00

Selenium是一个自动化测试工具,可用于模拟用户操作浏览器,执行各种测试任务。其中,selenium.webdriver.common.by模块提供了一系列定位元素的方法,By类是其核心类,提供了以下几种定位方式:

1. ID定位(find_element_by_id)

使用元素的ID属性进行定位。示例代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get('https://www.google.com/')

element = driver.find_element(By.ID, 'gb_70')

element.click()

2. Class Name定位(find_element_by_class_name)

使用元素的class属性进行定位。示例代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get('https://www.google.com/')

element = driver.find_element(By.CLASS_NAME, 'gLFyf')

element.send_keys('Hello World
')

3. Tag Name定位(find_element_by_tag_name)

使用元素的标签名进行定位。示例代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get('https://www.google.com/')

element = driver.find_element(By.TAG_NAME, 'a')

element.click()

4. Link Text定位(find_element_by_link_text)

使用链接文本进行定位。示例代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get('https://www.google.com/')

element = driver.find_element(By.LINK_TEXT, 'Gmail')

element.click()

5. Partial Link Text定位(find_element_by_partial_link_text)

使用链接文本的部分文本进行定位。示例代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get('https://www.google.com/')

element = driver.find_element(By.PARTIAL_LINK_TEXT, 'I')

element.click()

6. Name定位(find_element_by_name)

使用元素的name属性进行定位。示例代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get('https://www.google.com/')

element = driver.find_element(By.NAME, 'q')

element.send_keys('Selenium
')

7. CSS Selector定位(find_element_by_css_selector)

使用CSS选择器进行定位。示例代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get('https://www.google.com/')

element = driver.find_element(By.CSS_SELECTOR, 'input[name=q]')

element.send_keys('Selenium
')

8. XPath定位(find_element_by_xpath)

使用元素的XPath进行定位。示例代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get('https://www.google.com/')

element = driver.find_element(By.XPATH, '//input[@name="q"]')

element.send_keys('Selenium
')

使用上述方法时,需要先创建一个WebDriver对象,然后使用该对象的find_element方法来定位元素。find_element方法接受两个参数:定位方式和定位值。定位方式由By类的静态属性提供,而定位值则是需要定位的元素的特定属性值。

总结:

本文介绍了Selenium的常用定位方法,通过selenium.webdriver.common.by.By类可以实现多种定位方式,如ID、Class Name、Tag Name、Link Text、Partial Link Text、Name、CSS Selector和XPath定位。这些定位方法可根据元素的不同属性进行定位,满足不同场景下的自动化测试需求。