当前位置:网站首页>selenium 元素定位(2)
selenium 元素定位(2)
2022-07-06 01:33:00 【不负韶华ღ】
概述
selenium 4引入了相对定位器(以前称为友好定位器)。当为所需元素构建定位器并不容易时,这些定位器很有帮助,但很容易在空间上描述元素相对于具有易于构建定位器的元素的位置。
方式
above
locate_with(by: By, using: str).above(element_or_locator:Union[WebElement, Dict] = None)
如果某一元素不容易定位,但是该元素下方的元素容易定位,那么可以先访问该元素下方的元素,再通过above函数访问该元素。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.relative_locator import locate_with
driver = webdriver.Chrome()
driver.get("http://www.example.com")
# 定位到标签名为p的元素
element = driver.find_element(By.TAG_NAME, "p")
# 相对定位到该元素上面标签名为h1的元素
locator = locate_with(By.TAG_NAME, "h1").above(element)
# 根据相对定位来查找元素
element = driver.find_element(locator)
below
locate_with(by: By, using: str).below(element_or_locator:Union[WebElement, Dict] = None)
如果某一元素不容易定位,但是该元素上面的元素容易定位,那么可以先访问该元素上面的元素,再通过below函数访问该元素。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.relative_locator import locate_with
driver = webdriver.Chrome()
driver.get("http://www.example.com")
element = driver.find_element(By.TAG_NAME, "h1")
# 相对定位到element下面的标签为p元素
locator = locate_with(By.TAG_NAME, "p").below(element)
element = driver.find_element(locator)
left
locate_with(by: By, using: str).to_left_of(element_or_locator:Union[WebElement, Dict] = None)
如果某一元素不容易定位,但是该元素右边的元素容易定位,那么可以先访问该元素右面的元素,再通过to_left_of函数访问该元素。
right
locate_with(by: By, using: str).to_right_of(element_or_locator:Union[WebElement, Dict] = None)
如果某一元素不容易定位,但是该元素左边的元素容易定位,那么可以先访问该元素左面的元素,再通过to_right_of函数访问该元素。
near
locate_with(by: By, using: str).near(element_or_locator:Union[WebElement, Dict] = None)
如果相对定位不明显,或者根据窗口大小而变化,可以使用 near 方法来识别距离元素最多50px的元素。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.relative_locator import locate_with
driver = webdriver.Chrome()
driver.get("http://www.example.com")
element = driver.find_element(By.TAG_NAME, "h1")
# 相对定位到element附近(可以是上下左右)的标签名为p的元素
locator = locate_with(By.TAG_NAME, "p").near(element)
element = driver.find_element(locator)
边栏推荐
- [flask] official tutorial -part3: blog blueprint, project installability
- 【全網最全】 |MySQL EXPLAIN 完全解讀
- Paddle框架:PaddleNLP概述【飛槳自然語言處理開發庫】
- Basic operations of database and table ----- set the fields of the table to be automatically added
- Condition and AQS principle
- [the most complete in the whole network] |mysql explain full interpretation
- ThreeDPoseTracker项目解析
- module ‘tensorflow. contrib. data‘ has no attribute ‘dataset
- Unreal browser plug-in
- [solved] how to generate a beautiful static document description page
猜你喜欢
Redis-字符串类型
Huawei Hrbrid interface and VLAN division based on IP
Force buckle 9 palindromes
关于softmax函数的见解
MUX VLAN configuration
A Cooperative Approach to Particle Swarm Optimization
Maya hollowed out modeling
Folio.ink 免费、快速、易用的图片分享工具
Cookie concept, basic use, principle, details and Chinese transmission
False breakthroughs in the trend of London Silver
随机推荐
Code Review关注点
Poj2315 football games
XSS learning XSS lab problem solution
ClickOnce does not support request execution level 'requireAdministrator'
Docker compose configures MySQL and realizes remote connection
Cookie concept, basic use, principle, details and Chinese transmission
Basic operations of databases and tables ----- primary key constraints
3D视觉——4.手势识别(Gesture Recognition)入门——使用MediaPipe含单帧(Singel Frame)和实时视频(Real-Time Video)
The basic usage of JMeter BeanShell. The following syntax can only be used in BeanShell
[solved] how to generate a beautiful static document description page
Paddle框架:PaddleNLP概述【飛槳自然語言處理開發庫】
[le plus complet du réseau] | interprétation complète de MySQL explicite
LeetCode 322. Change exchange (dynamic planning)
[ssrf-01] principle and utilization examples of server-side Request Forgery vulnerability
剑指 Offer 38. 字符串的排列
Folio.ink 免费、快速、易用的图片分享工具
[机缘参悟-39]:鬼谷子-第五飞箝篇 - 警示之二:赞美的六种类型,谨防享受赞美快感如同鱼儿享受诱饵。
Huawei Hrbrid interface and VLAN division based on IP
Force buckle 9 palindromes
[flask] obtain request information, redirect and error handling