📜  在Selenium Python中定位单个元素

📅  最后修改于: 2022-05-13 01:55:09.861000             🧑  作者: Mango

在Selenium Python中定位单个元素

Selenium Python中的定位器策略是用于从页面中定位元素并对其执行操作的方法。 Selenium 的Python模块是为使用Python执行自动化测试而构建的。 Selenium Python绑定提供了一个简单的 API 来使用Selenium WebDriver 编写功能/验收测试。在安装了selenium并签出 – 使用 get 方法导航链接之后,您可能想更多地使用Selenium Python。在使用selenium (如 geeksforgeeks)打开页面后,用户可能希望自动单击某些按钮或自动填写表单或任何此类自动化任务。本文围绕在Selenium Python中定位单个元素展开。

定位单个第一个元素的定位器策略

Selenium Python遵循不同的元素定位策略。可以通过 8 种不同的方式定位元素。以下是Python中Selenium的定位策略列表——

LocatorsDescription
find_element_by_idThe first element with the id attribute value matching the location will be returned.
find_element_by_nameThe first element with the name attribute value matching the location will be returned.
find_element_by_xpathThe first element with the xpath syntax matching the location will be returned.
find_element_by_link_textThe first element with the link text value matching the location will be returned.
find_element_by_partial_link_textThe first element with the partial link text value matching the location will be returned.
find_element_by_tag_nameThe first element with the given tag name will be returned.
find_element_by_class_namethe first element with the matching class attribute name will be returned.
find_element_by_css_selectorThe first element with the matching CSS selector will be returned.

find_element_by_id

使用此策略,将返回 id 属性值与位置匹配的第一个元素。如果没有元素具有匹配的 id 属性,则会引发 NoSuchElementException。

句法 -
driver.find_element_by_id("id_of_element")

例子 -
例如,考虑这个页面源:


 
  
              
 

现在,在您创建驱动程序后,您可以使用 -

login_form = driver.find_element_by_id('loginForm')

要检查实际实现,请访问 – find_element_by_id() 驱动方法 – Selenium Python

find_element_by_name

使用此策略,将返回 name 属性值与位置匹配的第一个元素。如果没有元素具有匹配的名称属性,则会引发 NoSuchElementException。

句法 -
driver.find_element_by_name("name_of_element")

例子 -
例如,考虑这个页面源:


 
  
              
 

现在,在您创建驱动程序后,您可以使用 -

element = driver.find_element_by_name('username')

要检查实际的实现,请访问 – find_element_by_name() 驱动方法 – Selenium Python

find_element_by_xpath

使用此策略,将返回与位置匹配的 xpath 模式的第一个元素。如果没有元素具有匹配的元素属性,则会引发 NoSuchElementException。

句法 -
driver.find_element_by_xpath("xpath")

例子 -
例如,考虑这个页面源:


 
  
              
 

现在,在您创建驱动程序后,您可以使用 -

login_form = driver.find_element_by_xpath("/html/body/form[1]")
login_form = driver.find_element_by_xpath("//form[1]")

要检查实际实现,请访问 – find_element_by_xpath() 驱动方法 – Selenium Python

使用此策略,将返回链接文本值与位置匹配的第一个元素。如果没有元素具有匹配的链接文本属性,则会引发 NoSuchElementException。

句法 -
driver.find_element_by_link_text("Text of Link")

例子 -
例如,考虑这个页面源:


 
  

Are you sure you want to do this?

  Continue   Cancel

现在,在您创建驱动程序后,您可以使用 -

login_form = driver.find_element_by_link_text('Continue')

要检查实际的实现,请访问 – find_element_by_link_text() 驱动方法 – Selenium Python

使用此策略,将返回与位置匹配的部分链接文本值的第一个元素。如果没有元素具有匹配的部分链接文本属性,则会引发 NoSuchElementException。

句法 -
driver.find_element_by_partial_link_text("Text of Link")

例子 -
例如,考虑这个页面源:


 
  

Are you sure you want to do this?

  Continue   Cancel

现在,在您创建驱动程序后,您可以使用 -

login_form = driver.find_element_by_partial_link_text('Conti')

要检查实际实现,请访问 – find_element_by_partial_link_text() 驱动方法 – Selenium Python

find_element_by_tag_name

使用此策略,将返回具有给定标签名称的第一个元素。如果没有元素具有匹配的标记名称,则会引发 NoSuchElementException。

句法 -
driver.find_element_by_tag_name("Tag name")

例子 -
例如,考虑这个页面源:


 
  

Welcome

  

Site content goes here.

现在,在您创建驱动程序后,您可以使用 -

login_form = driver.find_element_by_tag_name('h1')

要检查实际的实现,请访问 – find_element_by_tag_name() 驱动方法 – Selenium Python

find_element_by_class_name

使用此策略,将返回具有匹配类属性名称的第一个元素。如果没有元素具有匹配的类属性名称,则会引发 NoSuchElementException。

句法 -
driver.find_element_by_class_name("class_of_element")

例子 -
例如,考虑这个页面源:


 
  

Site content goes here.

现在,在您创建驱动程序后,您可以使用 -

content = driver.find_element_by_class_name('content')

要检查实际的实现,请访问 – find_element_by_class_name() 驱动方法 – Selenium Python

find_element_by_css_selector

使用此策略,将返回具有匹配 CSS 选择器的第一个元素。如果没有元素具有匹配的 CSS 选择器,则会引发 NoSuchElementException。

句法 -
driver.find_element_by_css_selector("CSS Selectors")

例子 -
例如,考虑这个页面源:


 
  

Site content goes here.

现在,在您创建驱动程序后,您可以使用 -

content = driver.find_element_by_css_selector('p.content')

要检查实际实现,请访问 – find_element_by_css_selector() 驱动方法 – Selenium Python



立即开始您的编码之旅!