Selenium 定位策略-(通过CSS标签,类和属性)
在本节中,您将学习如何使用CSS-子字符串匹配技术来定位特定的网络元素。
WebDriver提供了一个有趣的功能,允许使用^,$和*进行部分字符串匹配。
1、以(^)开头:
要选择和定位网络元素,我们将使用^表示"以...开头"。
请按照下面给出的步骤使用局部字符串匹配技术。
打开URL: https://www.testandquiz.com/selenium/testing.html
右键单击示例网页上的"文本框",然后选择"检查元素"
它将启动一个窗口,其中包含开发文本框所涉及的所有特定代码。
记下其tag和id属性。
用于通过CSS定位Web元素的Java语法-使用^运算符的子字符串匹配技术写为:
driver.findElement(By.cssSelector("Tag[attribute^=prefix of the string]"))
因此,为了在示例网页上定位文本框,我们将使用输入标签以及id属性:
driver.findElement(By.cssSelector("input[id^='fna']"))
类似地,为了在示例网页上找到Submit按钮,我们将使用button标记以及id属性:
driver.findElement(By.cssSelector("button[id^='idOf']"))
我们为您创建了一个示例脚本,以使您更好地了解如何通过CSS-使用^运算符的子字符串匹配技术来定位Web元素。
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class SampleFive {
public static void main(String[] args) {
// System Property for Chrome Driver
System.setProperty("webdriver.chrome.driver","D:\\ChromeDriver\\chromedriver.exe");
// Instantiate a ChromeDriver class.
WebDriver driver=new ChromeDriver();
// Launch Website
driver.navigate().to("https://www.testandquiz.com/selenium/testing.html");
// Click on the textbox and send value
driver.findElement(By.cssSelector("input[id^='fna']")).sendKeys("lidihuo JMeter Tutorial");
// Click on the Submit button using click() command
driver.findElement(By.cssSelector("button[id^='idOf']")).click();
// Close the Browser
driver.close();
}
}
2、以($)结尾:
要选择和定位Web元素,我们将使用$表示"以...结尾"。
请按照下面给出的步骤使用局部字符串匹配技术。
打开URL: https://www.testandquiz.com/selenium/testing.html
右键单击示例网页上的"文本框",然后选择"检查元素"
它将启动一个窗口,其中包含开发文本框所涉及的所有特定代码。
记下其tag和id属性。
用于通过CSS定位Web元素的Java语法-使用$运算符的子字符串匹配技术写为:
driver.findElement(By.cssSelector("Tag[attribute$=suffix of the string]"))
因此,为了在示例网页上找到"文本"框,我们将使用输入标签以及id属性:
driver.findElement(By.cssSelector("input[id$='me']"))
类似地,为了在示例网页上定位Submit按钮,我们将使用button标记以及id属性:
driver.findElement(By.cssSelector("button[id$='on']"))
我们为您创建了一个示例脚本,以使您更好地了解如何通过CSS-使用$运算符的子字符串匹配技术来定位Web元素。
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class SampleSix {
public static void main(String[] args) {
// System Property for Chrome Driver
System.setProperty("webdriver.chrome.driver","D:\\ChromeDriver\\chromedriver.exe");
// Instantiate a ChromeDriver class.
WebDriver driver=new ChromeDriver();
// Launch Website
driver.navigate().to("https://www.testandquiz.com/selenium/testing.html");
// Click on the textbox and send value
driver.findElement(By.cssSelector("input[id$='me']")).sendKeys("lidihuo Data Structure Tutorial");
// Click on the Submit button using click() command
driver.findElement(By.cssSelector("button[id$='on']")).click();
// Close the Browser
driver.close();
}
}
3、包含(*):
要选择和定位Web元素,我们将使用*表示"子字符串"。
请按照以下步骤使用"部分字符串匹配技术。
打开URL: https://www.testandquiz.com/selenium/testing.html
右键单击示例网页上的"文本框",然后选择"检查元素"
它将启动一个窗口,其中包含开发文本框所涉及的所有特定代码。
记下其tag和id属性。
用于通过CSS定位Web元素的Java语法-使用*运算符的子字符串匹配技术写为:
driver.findElement(By.cssSelector("Tag[attribute*=sub-string]"))
因此,为了在示例网页上找到"文本"框,我们将使用输入标签以及id属性:
driver.findElement(By.cssSelector("input[id*='id']"))
我们还可以使用'contains()'代替*运算符
driver.findElement(By.cssSelector("input:contains('id')"))
我们为您创建了一个示例脚本,以更好地理解如何通过CSS-使用$运算符的子字符串匹配技术来定位Web元素。
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class SampleSeven {
public static void main(String[] args) {
// System Property for Chrome Driver
System.setProperty("webdriver.chrome.driver","D:\\ChromeDriver\\chromedriver.exe");
// Instantiate a ChromeDriver class.
WebDriver driver=new ChromeDriver();
// Launch Website
driver.navigate().to("https://www.testandquiz.com/selenium/testing.html");
// Click on the textbox and send value
driver.findElement(By.cssSelector("input[id*='id']")).sendKeys("lidihuo C++ Tutorial");
// Close the Browser
driver.close();
}
}