Selenium 定位策略-(按ID)
 
 
 在本节中,您将学习如何使用其id属性的值来定位特定的Web元素。
 
 让我们考虑一个测试案例,在该案例中,我们将自动化以下场景: 
 
调用Firefox浏览器 
打开URL: https://www.testandquiz.com/selenium/testing.html  
点击文本框 
输入值" lidihuo"  
单击"提交"按钮 
 我们将逐步创建测试用例,以使您全面了解如何使用定位器来识别和定位特定的Web元素。
 
  Step1 。启动Eclipse IDE,并打开我们在本教程前面的课程中创建的现有测试套件" Demo_Test"。
 
  Step2 。右键单击" src"文件夹,然后从 New> Class 创建新的类文件。
 
 
 将您的类名设为" Locator_One",然后单击"完成"按钮。
 
 
  Step3 。让我们进入编码基础。
 
要调用Firefox浏览器,我们需要下载Gecko驱动程序并设置Gecko驱动程序的系统属性。我们已经在本教程的早期课程中对此进行了讨论。您可以参考"> "在Firefox浏览器上运行测试" 了解如何下载并为Firefox驱动程序设置系统属性。 
 这是为Gecko驱动程序设置系统属性的示例代码: 
 
 
  
    // System Property for Gecko Driver 
  System.setProperty("webdriver.gecko.driver","D:\\GeckoDriver\\geckodriver.exe" );
     
   
  
之后,我们必须使用所需功能类来初始化Gecko驱动程序。 
 这是使用DesiredCapabilities类初始化壁虎驱动程序的示例代码。
 
 
  
    // Initialize Gecko Driver using Desired Capabilities Class
    DesiredCapabilities capabilities = DesiredCapabilities.firefox();
    capabilities.setCapability("marionette",true);
    WebDriver driver= new FirefoxDriver(capabilities);
     
   
  
结合以上两个代码块,我们将获得启动Firefox浏览器的代码段。 
 
  
      // System Property for Gecko Driver 
  System.setProperty("webdriver.gecko.driver","D:\\GeckoDriver\\geckodriver.exe" );
    
   // Initialize Gecko Driver using Desired Capabilities Class
  DesiredCapabilities capabilities = DesiredCapabilities.firefox();
  capabilities.setCapability("marionette",true);
  WebDriver driver= new FirefoxDriver(capabilities);
     
   
  
之后,我们需要编写代码以使第二个测试场景自动化(导航到所需的URL) 
 以下是示例代码,可导航到所需的URL: 
 
 
  
  // Launch Website
driver.navigate().to("https://www.testandquiz.com/selenium/testing.html"); 
     
   
  
 
 到目前为止,完整的代码如下所示: 
 
 
  
  import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
public class Locator_One {
  public static void main(String[] args) {
    
  // System Property for Gecko Driver 
    System.setProperty("webdriver.gecko.driver","D:\\GeckoDriver\\geckodriver.exe" );
      
  // Initialize Gecko Driver using Desired Capabilities Class
      DesiredCapabilities capabilities = DesiredCapabilities.firefox();
      capabilities.setCapability("marionette",true);
      WebDriver driver= new FirefoxDriver(capabilities);
    
      // Launch Website
driver.navigate().to("https://www.testandquiz.com/selenium/testing.html"); 
  
  }
}
     
   
  
  Step4 。现在,我们将尝试使用其id属性的值来定位所需的Web元素。在Selenium中,查找特定的Web元素涉及对其HTML代码的检查。
 
 请按照以下步骤在示例Web页面上找到"文本"框。
 
打开URL: https://www.testandquiz.com/selenium/testing.html  
右键单击"文本"框,然后选择"检查元素"  
 
它将启动一个窗口,其中包含与文本框的开发有关的所有特定代码。 
 
选择id属性的值,即" 1fname"。 
 
  Java语法使用其id属性定位网络元素的方式为: 
 
 
  
  driver.findElement(By.id (<element ID>))
     
   
  
 因此,为了在示例网页上定位文本框,我们将其id属性的值用作: 
 
 
  
  driver.findElement(By.id (<"fname">))
     
   
  
 类似地,为了在示例网页上找到"提交"按钮,我们将其id属性的值用作: 
 
 
  
  driver.findElement(By.id (<"idOfButton">))
     
   
  
  第5步。 
 
 要使第三,第四和第五种测试方案自动化,我们需要编写代码,该代码将单击"文本"框,在在文本框中单击提交按钮。
 
 这是在文本框中单击并键入值作为" lidihuo"的示例代码。
 
 
  
  // Click on the textbox and send value
driver.findElement(By.id("fname")).sendKeys("lidihuo");
     
   
  
 以下代码段将单击Submit按钮: 
 
 
  
  // Click on the Submit button using click() command
 driver.findElement(By.id("idOfButton")).click();
     
   
  
 因此,我们的最终测试脚本将如下所示: 
 
 
  
  import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
public class Locator_One {
  public static void main(String[] args) {
    
      // System Property for Gecko Driver 
    System.setProperty("webdriver.gecko.driver","D:\\GeckoDriver\\geckodriver.exe" );
      
     // Initialize Gecko Driver using Desired Capabilities Class
      DesiredCapabilities capabilities = DesiredCapabilities.firefox();
      capabilities.setCapability("marionette",true);
      WebDriver driver= new FirefoxDriver(capabilities);
      
    // Click on the textbox and send value
       driver.findElement(By.id("fname")).sendKeys("lidihuo");
       
    // Click on the Submit button using click() command
       driver.findElement(By.id("idOfButton")).click();   
       
  }
}
     
   
  
 以下屏幕截图显示了我们测试脚本的Eclipse窗口。
 
 
  Step6、。右键单击Eclipse代码,然后选择 Run As> Java Application 。
 
 
 执行后,上述测试脚本将启动Firefox浏览器并使所有测试场景自动化。