当前位置:网站首页>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")
边栏推荐
- Three body goal management notes
- Miracast技术详解(一):Wi-Fi Display
- [software testing] 03 -- overview of software testing
- I can't stand the common annotations of idea anymore
- Ros2 - configuration development environment (V)
- Don't confuse the use difference between series / and / *
- DelayQueue延迟队列的使用和场景
- ModuleNotFoundError: No module named ‘picamera‘
- Executealways of unity is replacing executeineditmode
- Matrix and TMB package version issues in R
猜你喜欢
Word import literature -mendeley
【Node】nvm 版本管理工具
Graduation thesis project local deployment practice
PHY drive commissioning --- mdio/mdc interface Clause 22 and 45 (I)
Concurrent programming - deadlock troubleshooting and handling
一文揭开,测试外包公司的真实情况
Don't confuse the use difference between series / and / *
目标检测系列——Faster R-CNN原理详解
When jupyter notebook is encountered, erroe appears in the name and is not output after running, but an empty line of code is added downward, and [] is empty
Target detection series - detailed explanation of the principle of fast r-cnn
随机推荐
【obs】x264编码:“buffer_size“
Raspberry pie 4B arm platform aarch64 PIP installation pytorch
Batch convert txt to excel format
PostMessage communication
Database SQL practice 3. Find the current salary details of the current leaders of each department and their corresponding department number Dept_ no
How to delete the virus of inserting USB flash disk copy of shortcut to
[software testing] 04 -- software testing and software development
Basic series of SHEL script (III) for while loop
ModuleNotFoundError: No module named ‘picamera‘
The golang timer uses the stepped pit: the timer is executed once a day
Ggplot2 drawing learning notes in R
ImportError: No module named ‘Tkinter‘
SOC_ SD_ CMD_ FSM
SOC_ SD_ DATA_ FSM
目标检测系列——Faster R-CNN原理详解
Don't confuse the use difference between series / and / *
The SQL implementation has multiple records with the same ID, and the latest one is taken
Oracle code use
ORACLE CREATE SEQUENCE,ALTER SEQUENCE,DROP SEQUENCE
HDU1231 最大连续子序列(分治or动规or双指针)