当前位置:网站首页>Selenium element positioning
Selenium element positioning
2022-07-05 07:24:00 【Live up to your youth】
summary
The most basic unit of a page is the element , Want to locate an element , We need specific information to illustrate the unique characteristics of this element . stay selenium in , Yes 8 A way to locate specific elements . As shown in the following table :
positioner Locator | describe |
---|---|
class | location class The element whose attribute matches the search value ( Compound class names are not allowed ) |
css selector | location CSS The elements that the selector matches |
id | location id The element whose attribute matches the search value |
name | location name The element whose attribute matches the search value |
link text | location link text The anchor element whose visual text exactly matches the search value |
partial link text | location link text Anchor element that matches the visual text part with the search value part . If you match multiple elements , Then select only the first element . |
tag name | Locate the element whose tag name matches the search value |
xpath | Location and XPath Elements that match the expression |
Method
Suppose our web page consists of the following parts , Make the content of the web page as simple as possible , To introduce the different methods in detail .
<ol id="vegetables">
<li class="onions"><span>Onion is a Vegetable</span></li>
<li class="tomatoes"><span>Tomato is a Vegetable</span></li>
</ol>
<ul id="fruits">
<li class="apples"><span>Apple is a Fruit</span></li>
<li class="tomatoes"><span>Tomato is a Fruit</span></li>
</ul>
according to class Attribute positioning
# Locate in web page class by tomatoes The elements of , There are two qualified web pages , But this method only returns the first
driver.find_element(By.CLASS_NAME, "tomatoes")
# If you need to return all elements , You need to use find_elements Method
driver.find_elements(By.CLASS_NAME, "tomatoes")
according to id Attribute positioning
# stay HTML Kind of , because id The same two elements do not exist , So there is no need for find_elements Method
driver.find_element(By.ID, "fruits")
according to css Selector positioning
# In this positioning mode , More powerful , More flexible positioning , But you need to master css grammar
driver.find_element(By.CSS_SELECTOR, '#fruits .tomatoes')
according to tag name location
# According to the name of the label , This is based on <li></li> Label to locate
driver.find_elements(By.TAG_NAME, "li")
according to name Attribute positioning
name Attributes are generally used in forms , Server pass name Property to get the value of a specific element .
# lookup name The attribute is inp Form for
driver.find_elements(By.NAME, "inp")
according to link text location
This positioning method requires that the content of the element exactly matches the input content .
# The positioning text is Tomato is a Vegetable All elements of
driver.find_elements(By.LINK_TEXT, "Tomato is a Vegetable")
according to partial link text location
This positioning method only needs the content of the element to match the input content to locate the corresponding element .
# The positioning text contains Tomato All elements of
driver.find_elements(By.PARTIAL_LINK_TEXT, "Tomato")
according to xpath location
# according to xpath Expression to locate the element
driver.find_elements(By.XPATH, "/ol/li")
边栏推荐
- Now there are HTML files and MVC made with vs (connected to the database). How can they be connected?
- 1290_FreeRTOS中prvTaskIsTaskSuspended()接口实现分析
- C learning notes
- [solved] there is something wrong with the image
- Jenkins reported an error. Illegal character: '\ufeff'. Class, interface or enum are required
- Rough notes of C language (2) -- constants
- Three body goal management notes
- Altimeter data knowledge point 2
- Delayqueue usage and scenarios of delay queue
- npm install -g/--save/--save-dev的区别
猜你喜欢
Rough notes of C language (2) -- constants
M2DGR 多源多场景 地面机器人SLAM数据集
Tshydro tool
[untitled]
Netease to B, soft outside, hard in
And play the little chestnut of dynamic agent
Jenkins reported an error. Illegal character: '\ufeff'. Class, interface or enum are required
Shadowless cloud desktop - online computer
U-Boot初始化及工作流程分析
Light up the running light, rough notes for beginners (1)
随机推荐
氢氧化钠是什么?
[untitled]
Concurrent programming - how to interrupt / stop a running thread?
The problem of configuring opencv in qt5.13.2 is solved in detail
Shadowless cloud desktop - online computer
【idea】Could not autowire. No beans of xxx type found
Database SQL practice 4. Find the last of employees in all assigned departments_ Name and first_ name
The golang timer uses the stepped pit: the timer is executed once a day
Simple use of timeunit
Steps and FAQs of connecting windows Navicat to Alibaba cloud server MySQL
And let's play dynamic proxy (extreme depth version)
GPIO port bit based on Cortex-M3 and M4 with operation macro definition (can be used for bus input and output, STM32, aducm4050, etc.)
Reading literature sorting 20220104
Ros2 - configuration development environment (V)
[software testing] 05 -- principles of software testing
Powermanagerservice (I) - initialization
2022 PMP project management examination agile knowledge points (7)
[software testing] 04 -- software testing and software development
Graduation thesis project local deployment practice
Unconventional ending disconnected from the target VM, address: '127.0.0.1:62635', transport: 'socket‘