如何在 Selenium 中通过部分比较元素的属性来识别元素?
借助正则表达式,我们可以通过部分比较 Selenium 中的属性来识别元素。在 xpath 中,包含()方法。它支持属性值的部分匹配。在处理属性中具有动态值时,此方法非常有用。
语法
driver.findElement(By.xpath("//tagname[contains(@attributes,’value’)]"))在 CSS 中,我们可以通过使用正则表达式通过部分比较它的属性来识别元素。可能有三种情况 −
使用 ^ 以从特定文本开始为目标的属性。
语法 −
driver.findElement(By.cssSelector("tagname[attribute^=’value’]"))使用 $ 以从特定文本结束为目标的属性。
语法 −
driver.findElement(By.cssSelector("tagname[attribute$=’value’]"))使用 * 以从包含特定文本为目标的属性。
语法 −
driver.findElement(By.cssSelector("tagname[attribute*=’value’]"))
示例
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class PartialMatch {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
WebDriver driver = new ChromeDriver();
String url = "https://tutorialspoint.com/index.htm";
driver.get(url);
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
// xpath with contains() method driver.findElement(By.xpath("input[contains(@id,’gsc-i’)]"))
.click();
// css with class name attribute starting with gsc
driver.findElement(By.cssSelector("input[class^=’gsc’)]"))
.click();
// css with class attribute ending with button v2
driver.findElement(By.cssSelector("button[class$=’button-v2’)]")).
click();
// css with id attribute containing Selenium
driver.findElement(By.cssSelector("input[id*=’gsc-i’)]"))
.click();
driver.close();
}
}
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 程序设计
C++
C#
MongoDB
MySQL
Javascript
PHP