selenium - 如何避免在 Selenium 中有多个 xpath 变量?
问题描述
我在 Selenium 中定义了 2 个变量,如下所示:
@FindBy(xpath = "//span[contains(text(),'€11')]")
private WebElement singleTicket;
@FindBy(xpath = "//span[contains(text(),'€19')]")
private WebElement returnTicket;`
我需要在这些变量中为不同的测试传递不同的值,例如“$ 12”,但我不想在我的页面对象中创建更多具有不同价格的变量。什么是一个好的解决方案?
解决方案
没有办法传递parameter
给@FindBy
注释。但是你也可以编写一个自定义函数来获取webelement
基于特定value
的tag
。所以你不需要每次都创建单独的元素。请看下面的功能。
public WebElement getWebElementForSpecificText(String tagName, String text) {
String formXpath= ".//"+tagName+"[contains(text(),'"+text+"')]";
return driver.findElement(By.xpath(formXpath));
}
Yu 可以调用这个函数,如下所述:
getWebElementForSpecificText("span", "€11");
getWebElementForSpecificText("span", "€12");
getWebElementForSpecificText("span", "€19");
推荐阅读
- firebase-storage - 使用 pyrebase 从 Firestore 检索多个图像
- sql - 将表从 FROM 移动到 INNER JOIN 的 SQL 语义差异
- r - R 中具有可重复性的多列的简单加密
- python - 如何根据分类对数组的某些列进行分组和求和(例如按国家/地区对城市进行分组)
- kubernetes - 具有一个 http 和一个 https 后端的 K8s Ingress
- apache-kafka - 如何使用 Confluent KSQLDB 和控制台/命令行/cli 在 KAFKA 中创建表?
- reactjs - 仅在 chrome 上缺少带有 corsheaders 的 Patch 方法
- mysql - MySQL 分组和计数性能
- linux - 如何将 OUT 和 ERR 都重定向到一个文件,而仅将 ERR 重定向到另一个文件
- javascript - 计算下一个唯一数字并将其附加到树视图中的某些文本的最佳方法