显示带有标签的帖子 . 显示所有帖子
显示带有标签的帖子 . 显示所有帖子

2018年4月25日,星期三

如何使用Selenium Web驱动程序执行拖放

我们已经看过Selenium中的Actions课,并学习了有关它的基础知识。如果你想 在这里阅读 有关更多详细信息。基本动作类用于执行各种鼠标和键盘驱动的动作,例如单击和按住,鼠标悬停等。在本博客中,我们将使用Selenium中的Actions类来执行拖放动作。 

许多网站都提供拖放功能,因此我们将看到如何使其自动化。

影片教学-


出于演示目的,我使用示例拖放-

//jqueryui.com/droppable/

让我们看一下执行拖放的简单测试用例-


import java.util.List;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;

public class DragAndDrop {
 
ChromeDriver driver;
 
 @Before
 public  void setup(){
   
  System.setProperty("webdriver.chrome.driver", "C:\\Softwares\\chromedriver_win32\\chromedriver.exe");
  
      driver=new ChromeDriver();

       driver.manage().window().maximize();
  
        // start the application
  
       driver.get("//jqueryui.com/droppable/");
  
 }
 
 @Test
 public void testBootStrap() throws Exception
 {
 
  // Add 10 seconds wait
  Thread.sleep(10000);
   
  // Create object of actions class
  Actions act=new Actions(driver);
   
  driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@class='demo-frame']")));
  // find element which we need to drag
  WebElement drag=driver.findElement(By.xpath("//*[@id='draggable']"));
   
  // find element which we need to drop
  WebElement drop=driver.findElement(By.xpath("//*[@id='droppable']"));
   
  // this will drag element to destination
  act.dragAndDrop(drag, drop).build().perform();
  
  // Add 2 seconds wait
  Thread.sleep(2000);
    }
 
@After
public void tearDown()
{ 
 driver.quit();
}


}

如何在Selenium WebDriver中处理Bootstrap下拉菜单

在我们的 上一个位置我们已经见过 如何处理Selenium WebDriver中的下拉菜单 。在这篇文章中,我们将看到如何处理Bootsrap Dropdown。
Bootstrap下拉菜单和交互式下拉菜单通过使用以下列表动态定位和形成<ul> and <li> html tags.

以下是Bootstrap Dropdown的简单示例-

//www.w3schools.com/bootstrap/bootstrap_dropdowns.asp

影片教学- 
 

让我们看一下硒代码示例-

package test;

import java.util.List;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class BootstrapDropDown {
 
 ChromeDriver driver;
 
 @Before
 public  void setup(){
   
  System.setProperty("webdriver.chrome.driver", "C:\\Softwares\\chromedriver_win32\\chromedriver.exe");
  
      driver=new ChromeDriver();

       driver.manage().window().maximize();
  
        // start the application
  
       driver.get("//www.w3schools.com/bootstrap/bootstrap_dropdowns.asp");
  
 }
 
 @Test
 public void testBootStrap() throws Exception
 {
        // First we have to click on menu item then only dropdown items will display
  
       driver.findElement(By.xpath(".//*[@id='menu1']")).click();
  
  
        // adding 2 seconds wait to avoid Sync issue
  
        Thread.sleep(2000);
  
  
  
        // Dropdown items are coming in <a> tag so below xpath will get all
  
        // elements and findElements will return list of WebElements
  
        List<WebElement> list = driver.findElementsByXPath("//ul[@class='dropdown-menu test']//li/a");
  
  
  
        // We are using enhanced for loop to get the elements
  
        for (WebElement ele : list)
  
        {
  
           // for every elements it will print the name using innerHTML
  
           System.out.println("Values " + ele.getAttribute("innerHTML"));
  
  
  
           // Here we will verify if link (item) is equal to Java Script
  
           if (ele.getAttribute("innerHTML").contains("JavaScript")) {
  
              // if yes then click on link (iteam)
  
              ele.click();
  
  
  
              // break the loop or come out of loop
  
              break;
  
           }
  
        }
  
        // here you can write rest piece of code
  
    }
 
@After
public void tearDown()
{ 
 driver.quit();
}

}

2018年3月26日,星期一

如何处理Selenium Webdriver中的下拉菜单

大家好,我们将学习如何在Selenium Webdriver中处理简单的下拉菜单。对于处理下拉菜单,Selenium已经提供了Select类,该类具有 一些预定义的方法,对使用Dropdown很有帮助。

在下面给出的示例中,我们使用按索引选择,按值选择和按可见的下拉文本进行选择。您可以通过以下三种不同的方式选择下拉值。另外,我们可以通过验证选定的下拉列表字段对下拉列表进行更多验证,并且我们还可以使用Selenium Webdriver获取所有下拉列表数据。

试试下面的代码,了解如何使用Selenium Webdriver对任何Web应用程序进行自动化下拉测试。

影片教学-



import java.util.List;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Select;

public class DropDownTest {

 WebDriver driver;
 WebElement month_dropdown;
 
 @Before
 public void setup()
 {
  System.setProperty("webdriver.chrome.driver", "C:\\Softwares\\chromedriver_win32\\chromedriver.exe");
  
      driver=new ChromeDriver();

       driver.manage().window().maximize();

       driver.get("http://www.facebook.com");
       
     month_dropdown=driver.findElement(By.id("month"));
 }
 
 @Test
 public void testSelectByIndex()
 {
  
  Select month=new Select(month_dropdown);
   
   month.selectByIndex(4);
  
 }
 @Test
 public void testSelectByValues()
 {
  
   
   Select month=new Select(month_dropdown);
   
   month.selectByValue("5");
 }
 @Test
 public void testSelectByVisisbleField()
 {
  
   
   Select month=new Select(month_dropdown);
   
   month.selectByVisibleText("Aug");
 }
 @Test
 public void testSelectedOption()
 {
  
   
   Select month=new Select(month_dropdown);
   
   WebElement first_value=month.getFirstSelectedOption();
   
   String value=first_value.getText();
   
   System.out.println("select dropdown value is- "+value);
 }
 @Test
 public void testAllDropDownOptions()
 {
   
  Select month=new Select(month_dropdown);
   
  List<WebElement> dropdown=month.getOptions();
   
   for(int i=0;i<dropdown.size();i++){
   
   String drop_down_values=dropdown.get(i).getText();
   
   System.out.println("dropdown values are "+drop_down_values);
   
   }
   
   
 }
 
 @After
 public void teardown()
 {
  driver.quit();
 }
 
}

2018年3月21日,星期三

如何在Selenium WebDriver中禁用Chrome通知弹出窗口

很多时候,我们遇到的问题是Chrome浏览器在执行硒测试用例时显示通知弹出消息,这会导致您的测试用例失败。在本文中,我们将看一些简单的代码,您可以使用它们隐藏或禁用chrome浏览器上显示的通知弹出窗口。 



影片教学-



import java.util.HashMap;
import java.util.Map;

import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
 
public class HandlePopupTest {
 
 @Test
 public  void test() throws Exception {
  
                // Create object of HashMap Class
  Map<String, Object> prefs = new HashMap<String, Object>();
              
                // Set the notification setting it will override the default setting
  prefs.put("profile.default_content_setting_values.notifications", 2);
 
                // Create object of ChromeOption class
  ChromeOptions options = new ChromeOptions();
 
                // Set the experimental option
  options.setExperimentalOption("prefs", prefs);
 
                // pass the options object in Chrome driver
  System.setProperty("webdriver.chrome.driver", "C:\\Softwares\\chromedriver_win32\\chromedriver.exe");
  WebDriver driver = new ChromeDriver(options);
  driver.get("//www.facebook.com/");
  driver.manage().window().maximize();
  
  
  
 }
 
}

2018年3月20日,星期二

如何在Selenium Webdriver中自动执行单选按钮和复选框

在这篇文章中,我们将学习如何使用硒测试复选框和单选按钮。
让我们看看复选框和单选按钮的html代码是什么样的。
   
复选框的HTML
<input type=”checkbox”>
   
单选按钮的HTML
<input type=”radio”>


单选按钮和复选框之间的主要区别是可以选择多个复选框,但是对于单选按钮,只能选择一个。
我们可以使用硒执行点击操作 click() 方法,但在此之前,验证/测试下面列出的某些条件非常重要-

  •     isEnabled()-您需要确认是否启用了单选按钮或复选框。
  •     被陈列()-您需要验证是否在UI上显示了单选按钮或复选框。
  •     isSelected()-您需要验证复选框和单选按钮是否默认选中。
影片教学- 
 

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

 
public class RadioButtonTest {

WebDriver driver;


@Test
 
     public  void test() throws Exception {
 
 System.setProperty("webdriver.chrome.driver", "C:\\Softwares\\chromedriver_win32\\chromedriver.exe");
 
    WebDriver driver=new ChromeDriver();

      driver.manage().window().maximize();

      driver.get("http://www.facebook.com");
        
         WebElement female_radio_button=driver.findElement(By.id("u_0_b"));
 
         boolean status=female_radio_button.isDisplayed();
 
         System.out.println("Female 无线电 button is Displayed >>"+status);
 
          boolean enabled_status=female_radio_button.isEnabled();
 
          System.out.println("Female 无线电 button is Enabled >>"+enabled_status);
 
        boolean selected_status=female_radio_button.isSelected();
 
          System.out.println("Female 无线电 button is Selected >>"+selected_status);
 
          female_radio_button.click();
 
        boolean selected_status_new=female_radio_button.isSelected();
 
          System.out.println("Female 无线电 button is Selected >>"+selected_status_new);
          driver.quit();
 
     }
 

}

您可以为chekbox使用相同的代码进行练习。请尝试在下面的评论部分中分享您的反馈,建议和问题。

2018年1月17日,星期三

使用Selenium Webdriver测试失败时如何捕获屏幕截图

我们知道了解测试失败的原因非常重要,我们需要在测试用例失败时捕获屏幕截图。测试失败的原因可能是应用程序中的错误或自动化脚本中的错误,因此要了解确切的问题,捕获测试用例失败的屏幕截图非常重要。

我已经写了一篇有关如何截取屏幕截图的文章,您可以在此处引用。在这篇文章中,我们将看到如何在测试用例失败的情况下捕获屏幕截图。

1. ITestResult接口 -这将为我们提供测试用例的执行状态和测试用例名称。
2. @AfterMethod -TestNG的注释,将在之后执行 每次测试执行,无论 测试用例通过或失败@AfterMethod将 always execute.

让我们看完整的代码-




package captureScreenshot;
 
// Import all classes and interface
import java.io.File;
import library.Utility;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.ITestResult;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
 
public class 脸书ScreenshotExample {
 
// Create Webdriver reference
WebDriver driver; 
System.setProperty("webdriver.chrome.driver", "C:\\Users\\Anuja.AnujaPC\\Downloads\\chromedriver_win32\\chromedriver.exe");
 driver=new ChromeDriver(); 

 @Test
public void captureScreenshot() throws Exception
{
 
// Initiate Chrome browser

 
// Maximize the browser
driver.manage().window().maximize();
 
// Pass application url
driver.get("http://www.facebook.com");
 
// Here we are forcefully passing wrong id so that it will fail our testcase
driver.findElement(By.xpath(".//*[@id='emailasdasdas']")).sendKeys("质量检查自动化");
 
 
}
 
 
 
 
 
// It will execute after every test execution 
@AfterMethod
public void tearDown(ITestResult result)
{
 
// Here will compare if test is failing then only it will enter into if condition
if(ITestResult.FAILURE==result.getStatus())
{
try 
{
// Create refernce of TakesScreenshot
TakesScreenshot ts=(TakesScreenshot)driver;
 
// Call method to capture screenshot
File source=ts.getScreenshotAs(OutputType.FILE);
 
// Copy files to specific location here it will save all screenshot in our project home directory and
// result.getName() will return name of test case so that screenshot name will be same
FileUtils.copyFile(source, new File("./ScreenShots/"+result.getName()+".png"));
 
System.out.println("Screenshot taken");
} 
catch (Exception e)
{
 
System.out.println("Exception while taking screenshot "+e.getMessage());
} 
 
 
 
}
// close application
driver.quit();
}
 
 
 
}

2018年1月16日,星期二

如何使用Selenium WebDriver滚动

在这篇文章中,我们将讨论如何使用Selenium精确滚动它。 不幸的是Selenium没有内置方法可以让我们 滚动到视图中,但是我们可以使用JavaScript执行器在Selenium中滚动到视图中。


现在让我们看一下如何使用Selenium WebDriver滚动的详细代码



package test;


import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;


public class ScrollTest {
 
     @Test
 public  void test() {

  // Start browser
  System.setProperty("webdriver.chrome.driver", "C:\\Softwares\\chromedriver_win32\\chromedriver.exe");
  WebDriver driver=new ChromeDriver();


  // Maximize browser

  driver.manage().window().maximize();



  // Pass application URL

  driver.get("http://www.yubo666.com");



  // Create instance of Javascript executor

  JavascriptExecutor je = (JavascriptExecutor) driver;



  //Identify the WebElement which will appear after scrolling down

  WebElement element = driver.findElement(By.xpath(".//*[@id='colophonpbt']"));



  // now execute query which actually will scroll until that element is not appeared on page.

  je.executeScript("arguments[0].scrollIntoView(true);",element);



  // Extract the text and verify

  System.out.println(element.getText());
  
  //close browser
  driver.quit();

  }
     
}

2017年1月6日,星期五

如何使用Selenium WebDriver打开新选项卡

硒 WebDriver 该工具没有内置的API,我们可以直接使用它们来打开新标签页。通常,我们使用CTRL + t键在浏览器中打开新选项卡,而在cltr +选项卡之间切换选项卡。我们将在硒测试用例中使用它在浏览器中打开另一个选项卡,然后切换到选项卡。 

仔细查看下面的示例,以了解如何打开新标签页,如何在新标签页中打开特定网址,如何在两个标签页之间切换 以及如何关闭标签。




import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

public class BromiumTests {

 WebDriver driver;
 Utils util;

 @BeforeTest
 public void setUp() {
  System.setProperty("webdriver.chrome.driver", "C:\\Softwares\\chromedriver_win32\\chromedriver.exe");
  driver = new ChromeDriver();
  driver.manage().window().maximize();
  driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
  
 }

 
 
 @Test
 public void testOpenYoutube() {
  driver.get("//www.youtube.com");
  
  driver.get("//www.youtube.com/watch?v=9NXEnGiOeUU");
  driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

 }
        @Test
 public void testOpenGmail() {
  switchToNewTab();
  driver.get("http://www.gmail.com");
  driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
 }
       public void openNewTab() {
  ((JavascriptExecutor) driver).executeScript("window.open('about:blank','_blank');");
 }

 public void switchToNewTab() {
  openNewTab();
  String subWindowHandler = null;

  Set<String> handles = driver.getWindowHandles();
  Iterator<String> iterator = handles.iterator();
  while (iterator.hasNext()) {
   subWindowHandler = iterator.next();
  }
  driver.switchTo().window(subWindowHandler);
 }

 @AfterClass
 public void tearDown() {
  driver.quit();
 }
 

}

如何使用Selenium WebDriver捕获ScreenShot

测试时截取屏幕截图对于自动化非常重要,这样您就可以指出并捕获确切的错误。在这篇文章中,我们将学习如何在硒测试用例失败时进行屏幕截图。在硒测试失败时拥有屏幕截图更为重要,但是如果要在硒测试通过时捕获屏幕截图,则可以添加代码。
一旦知道如何使用它,便可以在任何地方使用它。因此,让我们开始吧。 。 。


使用Selenium WebDriver进行ScreenShot

视频教程也可用-


import java.io.File;

import java.io.IOException;

import org.apache.commons.io.FileUtils;

import org.openqa.selenium.OutputType;

import org.openqa.selenium.TakesScreenshot;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.firefox.FirefoxDriver;

import org.testng.annotations.Test;

public class ScreenshootGoogle {

 @Test
 public void TestJavaS1()
{
// Open chrome browser
 System.setProperty("webdriver.chrome.driver", "C:\\Users\\Anuja.AnujaPC\\Downloads\\chromedriver_win32\\chromedriver.exe");
  WebDriver driver=new ChromeDriver();

// Maximize the window
driver.manage().window().maximize();

// Pass the url
driver.get("http://www.yubo666.com");

// Take screenshot and store as a file format
File src= ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
try {
 // now copy the  screenshot to desired location using copyFile //method
FileUtils.copyFile(src, new File("C:/selenium/error.png"));
}

catch (IOException e)
 {
  System.out.println(e.getMessage());

 }
 }

2016年10月23日,星期日

使用Selenium WebDriver处理键盘和鼠标事件


在许多情况下,我们会遇到一种情况,我们希望自动化特殊类型的键盘和鼠标事件,并且Selenium Web Drover提供了带有类名Actions和 Action.Selenium中处理键盘事件和鼠标事件非常简单,因此让我们开始吧。

让我们看看如何在硒测试中使用特殊事件
影片教学-


测试场景 -考虑您要按照以下屏幕快照中的“关于我”菜单执行鼠标悬停操作。当您将鼠标悬停在我的站点菜单上时,它将更改背景色,因此让我们看看如何使用Selenium对其进行测试。



测试用例 -


ackage mypackage;

import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;

public class myclass {

public static void main(String[] args) {
String baseUrl = "http://www.yubo666.com/";
       System.setProperty("webdriver.chrome.driver", 
         "C:\\chromedriver_win32\\chromedriver.exe");
        WebDriver driver=new ChromeDriver();

        driver.get(baseUrl);           
        WebElement aboutMe= driver.findElement(By.id("aboout_me"));
    
        
        Actions builder = new Actions(driver);
        Action mouseOverAboutMe = builder
                .moveToElement(aboutMe)
                .build();
        
        String bColor = td_Home.getCssValue("background-color");
        System.out.println("Before Mouse hover: " + bColor );        
        mouseOver关于Me.perform();        
        bColor = td_Home.getCssValue("background-color");
        System.out.println("After Mouse hover: " + bColor );
        driver.quit();
}
}

最常用的 键盘和鼠标事件API-

1. clickAndHold() -单击时不会释放鼠标所指向的位置。

2. contextClick()-
在鼠标指向的位置执行上下文单击(右键单击)。

3. doubleClick()-
在鼠标指向的位置上双击。

4. dragAndDrop(源,目标)-
在源元素的位置单击并按住,移至目标元素的位置,然后释放鼠标。
模仿按钮的source-web元素。
target-web元素以移至并释放鼠标。

5.dragAndDropBy(源,x-偏移,y-偏移)- 在源元素的位置单击并按住,移动给定的偏移量,然后释放鼠标。
模仿按钮的source-web元素。
xOffset-水平移动的办公室。
yOffset-偏移o垂直移动。

6.keyDown(modifier_key)-
不释放修饰键-后续的交互可能会假定它一直处于按下状态。
修饰键 样本= Keys.ALT,Keys.SHIFT或Keys.CONTROL等。

7.keyUp(修饰符_key)-
释放已按下的修改键.

8.moveByOffset(x-偏移,y-偏移)-
将鼠标从其当前位置移动给定的偏移量。
x-offset-水平偏移。 (负值= 向左移动鼠标)
y-offset-垂直偏移(负值=向上移动鼠标)

9. moveToElement(toElement)-
将鼠标移到元素的中间

10.release() -在当前鼠标位置释放按下的鼠标左键 指针。

11.sendKeys(onElement,charsequence)-
向元素发送一系列击键。

请与您的朋友分享,并在评论部分留下您的反馈。

2016年10月22日,星期六

使用Selenium访问表内的Web元素



使用xpath访问表内的Web元素非常重要,因为您需要编写自动化的Selenium测试用例。由于开发人员很难为每个表元素提供ID,因此我们需要使用Xpath来访问每个单元元素。因此,这篇文章对于理解使用Selenium访问表非常有用。

访问表格单元格元素-

HTML代码-
 

<html>
<body>
<table id="表1">
<table>
<tr>
<td>first </td>
<td>second </td>
</tr>
<tr>
<td>third</td>
<td>four </td>
</tr>
<table>
</body>
</htmt>

Xpath写作 -让我们编写xpath以便单击带有文本的单元格 “ th”

我们知道XPath定位器 以双斜杠“ //”开头,然后是父标记名称。由于我们正在处理表格,因此父元素将是<table>标签。 XPath的第一部分将是 “//表”.

带标签的元素<tbody> is under <table> means <tbody> is child tag of  of <table>。现在,oue xpath将被修改为 “ // table / tbody”。

现在里面<tbody>我们需要访问第二个<tr> and first <td>所以现在xpath将被修改为 “ //table/tbody.tr[2]/td[1]”。

WebElement thirdCell = driver.findElement(By.Xpath("//table/tbody/tr[2]/td[1]"));  

访问嵌套表单元格元素-

HTML代码-


<html>
<body>
<!-- Outer Table -->
<table id="表1">
<tbody>
<tr>
<td>first </td>
<td>second </td>
</tr>
<tr>
<td>third</td>
<!-- Inner Table -->
<table id="表2">
<tbody>
<tr>
<td>first 1</td>
<td>second 2</td>
</tr>
<tr>
<td>third 3</td>
<td>four 4 </td>
</tr>
</tbody>
<table>
</tr>
</tbody>
<table>
</body>
</htmt>

Xpath编写-

Xpath用于定位“第二个2"


WebElement thirdCell = driver.findElement(By.Xpath("//table/tbody/tr[2]/td[2]
                                                 +"/table/tbody/tr[1]/td[2]"));

Accessing 表 elment using attributes -

如果HTML代码中有多个表,或者如果表嵌套太多,我们可以使用html代码中提供的任何属性,例如Id,Width,height,values等。请参考第一个html代码,其中表ID为表1,那么我们可以如下所示编写xpath 


WebElement thirdCell = driver.findElement(By.Xpath("//table[@id=\"表1\"]/tbody/tr[2]/td[1]"));  


硒测试以检查网页中的链接是否正常

测试网页内的所有链接是否正常工作是最重要的测试方案。我们可以使用硒很容易地测试这种情况。我们知道链接将在内部 html标签<a> 我们可以使用By.tagName(“ a”)定位器,并在Java中使用迭代器来简化过程。

这个简单的示例将帮助您执行各种类型的测试,例如-

1.使用硒测试网页上的损坏链接。
2.单击一个链接或单击上的所有链接 验证链接的网页工作正常。
3.计算网页上的链接数。
4.在网页上获取链接列表。
5.在网页上找到无效链接的列表。

范例-

考虑我们要测试主页中的所有链接 www.qaautomated.com

测试用例 -

查看下面的测试用例,并阅读注释部分中提到的描述以了解流程。

package selenium.tests;

import java.util.List;



import java.util.concurrent.TimeUnit;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class TestAllLinks { 
 
 public static void main(String[] args) {
        String baseUrl = "http://www.yubo666.com/";
        System.setProperty("webdriver.chrome.driver", 
         "C:\\Users\\chromedriver_win32\\chromedriver.exe");
        WebDriver driver=new ChromeDriver();
        String notWorkingUrlTitle = "Under Construction: QAAutomated";
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

        driver.get(baseUrl);
        List<WebElement> linkElements = driver.findElements(By.tagName("a"));
        String[] linkTexts = new String[linkElements.size()];
        int i = 0;

        //extract the link texts of each link element
        for (WebElement elements : linkElements) {
            linkTexts[i] = elements.getText();
            i++;
        }

        //test each link
        for (String t : linkTexts) {
            driver.findElement(By.linkText(t)).click();
            if (driver.getTitle().equals(notWorkingUrlTitle )) {
                System.out.println("\"" + t + "\""
                        + " is not working.");
            } else {
                System.out.println("\"" + t + "\""
                        + " is working.");
            }
            driver.navigate().back();
        }
        driver.quit();
    }
}

输出-

“家”工作正常
“关于我”运行正常
“与我们联系”无效。

如果您觉得这很有用,请使用下面提供的共享选项与您的朋友分享该帖子。您可以在评论部分中写下您的反馈和建议。