📜  Selenium Webdriver CSS定位-子字符串匹配

📅  最后修改于: 2020-11-06 03:44:11             🧑  作者: Mango

定位策略-(通过CSS-子字符串匹配)

在本节中,您将学习如何使用CSS-子字符串匹配技术来定位特定的Web元素。

WebDriver提供了一个有趣的功能,允许使用^,$和*进行部分字符串匹配。

1.以(^)开头:

要选择和定位网络元素,我们将使用^,这意味着“起始于”。

请按照下面给出的步骤使用部分字符串匹配技术来定位文本框。

  • 它将启动一个窗口,其中包含开发文本框所涉及的所有特定代码。

  • 记下其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("JavaTpoint JMeter Tutorial");
             
    // Click on the Submit button using click() command
    driver.findElement(By.cssSelector("button[id^='idOf']")).click();
        
    // Close the Browser
        driver.close();
         

    }

}

2.以($)结尾:

要选择和定位网络元素,我们将使用$表示“结尾为”。

请按照下面给出的步骤使用部分字符串匹配技术来定位文本框。

  • 它将启动一个窗口,其中包含开发文本框所涉及的所有特定代码。

  • 记下其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("JavaTpoint 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.包含(*):<

要选择和定位网络元素,我们将使用*表示“子字符串”。

请按照下面给出的步骤使用部分字符串匹配技术来定位文本框。

  • 它将启动一个窗口,其中包含开发文本框所涉及的所有特定代码。

  • 记下其tag和id属性。

通过CSS-使用*运算符的子字符串匹配技术定位Web元素的Java语法写为:

  1. driver.findElement(By.cssSelector( “ Tag [attribute * = sub-string]” ))

因此,为了在示例网页上找到“文本”框,我们将使用输入标记以及id属性:

  1. driver.findElement(By.cssSelector( “ input [id * =’id’]” ))

我们也可以使用’contains()’代替*运算符

  1. driver.findElement(By.cssSelector( “ input:contains(’id’)” ))

我们为您创建了一个示例脚本,以使您更好地了解如何使用$运算符通过CSS子字符串匹配技术来定位Web元素。

  1. 导入org.openqa.selenium.By;
  2. 导入org.openqa.selenium.WebDriver;
  3. 导入org.openqa.selenium.chrome.ChromeDriver;
  4.   
  5. 上市 SampleSeven {
  6.   
  7. 上市 静态的  void main(String [] args){
  8.           
  9. // Chrome驱动程序的系统属性  
  10. System.setProperty( “ webdriver.chrome.driver” “ D:\\ ChromeDriver \\ chromedriver.exe” );
  11.   
  12. //实例化ChromeDriver类。   
  13. WebDriver驱动程序=新的ChromeDriver();
  14.   
  15. //启动网站  
  16. driver.navigate()。to( “ https://www.testandquiz.com/selenium/testing.html” );
  17.   
  18. //点击文本框并发送值  
  19. driver.findElement(By.cssSelector( “ input [id * =’id’]” ))。sendKeys( “ JavaTpoint C++教程” );
  20.                
  21. //关闭浏览器  
  22. driver.close();
  23.            
  24.   
  25. }
  26.   
  27. }