selenium4的相对定位

selenium4相对定位

Selenium
4新增了相对定位器,能帮助用户查找元素附近的其他元素。可用的相对定位器有above、below、toLeftOf、toRightOf、near。在Selenium
4中,find_element方法能够接受一个新方法withTagName,它将返回一个RelativeLocator(关联定位器)。下面来看一下新方法如何使用。Selenium
4使用JavaScript的getBoundingClientRect方法来查找关联元素。

这个方法会返回元素的属性,例如right、left、bottom、top。来看下面这个示例。假如我们有一个页面,如图

在这里插入图片描述

1)above方法

该方法用来返回指定元素上方的元素。例如,我们可以先定位到Password输入框,然后通过above方法返回Password元素上方的tag name="input"的元素。示例代码如下。

#from selenium.webdriver.support.relative_locator import with_tag_name
passwordField = driver.find_element(By.ID, "password")
emailAddressField = driver.find_element(with_tag_name("input").above(passwordField))

(2)below方法

该方法用来返回指定元素下方的元素。例如,我们可以先定位到Email Address文本框,然后通过below方法返回Email Address元素下方的tag name="input"的元素。示例代码如下。

#from selenium.webdriver.support.relative_locator import with_tag_name
emailAddressField = driver.find_element(By.ID, "email")
passwordField = driver.find_element(with_tag_name("input").below(emailAddressField))

(3)toLeftOf方法

该方法用来返回指定元素左侧的元素。例如,我们可以先定位到Submit按钮,然后通过toLeftOf方法来返回Submit元素左侧的tag name="button"的元素。示例代码如下。

#from selenium.webdriver.support.relative_locator import with_tag_name
submitButton = driver.find_element(By.ID, "submit")
cancelButton = driver.find_element(with_tag_name("button").toLeftOf(submitButton))

(4)toRightOf方法

该方法用来返回指定元素右侧的元素。例如,我们可以先定位到Cancel按钮,然后通过toRightOf方法返回Cancel元素右侧的tag name="button"的元素。示例代码如下。

//import static org.openqa.selenium.support.locators.RelativeLocator.withTagName;
WebElement cancelButton= driver.findElement(By.id("cancel"));
WebElement submitButton= driver.findElement(withTagName("button").toRightOf (cancelButton));

(5)near方法

该方法用来返回指定元素附近(最远50像素的距离)的元素。例如,我们可以先定位到Email Address元素,而该元素与下方文本框的距离小于50像素。因此,我们可以使用near方法来定位元素。示例代码如下。

//import static org.openqa.selenium.support.locators.RelativeLocator.withTagName;
WebElement emailAddressLabel= driver.findElement(By.id("lbl-email"));
WebElement emailAddressField = driver.findElement(withTagName("input").near (emailAddressLabel));

相关推荐

  1. 【Python+Selenium学习系列4Selenium常用方法

    2024-03-11 02:52:04       38 阅读
  2. selenium 之 css定位

    2024-03-11 02:52:04       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-11 02:52:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-11 02:52:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-11 02:52:04       82 阅读
  4. Python语言-面向对象

    2024-03-11 02:52:04       91 阅读

热门阅读

  1. 基于c语言的大宗商品撮合交易平台的市场价值

    2024-03-11 02:52:04       41 阅读
  2. 关于入行8年的职业总结

    2024-03-11 02:52:04       45 阅读
  3. nacos的原理及使用方法

    2024-03-11 02:52:04       50 阅读
  4. 初级代码游戏的专栏介绍与文章目录

    2024-03-11 02:52:04       44 阅读
  5. 【RHCSA问答题】第十一章 分析和存储日志

    2024-03-11 02:52:04       45 阅读
  6. 整合生成型AI战略:从宏观思维到小步实践

    2024-03-11 02:52:04       43 阅读
  7. 【蓝桥杯-单片机】基础模块:矩阵按键

    2024-03-11 02:52:04       48 阅读
  8. 安卓开发面试题

    2024-03-11 02:52:04       44 阅读
  9. 使用Go语言编写API接口的技术

    2024-03-11 02:52:04       43 阅读
  10. [python3] 读者-写者模式

    2024-03-11 02:52:04       47 阅读
  11. MacOS、ubuntu安装libssh、libssh2

    2024-03-11 02:52:04       39 阅读