我需要在哪里编写代码 a)访问www.google.com并搜索“计算器”。在结果中,您将看到浏览器中的计算器。 b)使用java代码从xls读取Num1 c)点击谷歌计算器中的Num1
Excel文件很简单,看起来像这样。
NUM1
7
95
我希望你们的人都能理解。 第一排Num1 第二排2 第三行是95
使用@Test我写了一个代码 问题是,我可以点击Num1 7而不是95。 此外,如果我的num1也是2,它会引发我的错误。请帮忙。
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class Exercise3 {
String part1 = "//*[@id='cwbt";
String part2 = "']/div/span";
@Test(dataProvider="getData")
public void calculator(String num1, String num2, String operation, String expectedResult){
WebDriver d = new FirefoxDriver();
d.manage().window().maximize();
d.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
d.get("https://www.google.co.in/?gfe_rd=cr&ei=2ArXVu7RGafG8AfjsKPgDQ&gws_rd=ssl#q=calculator");
//calculator box
//*[@id='cwbt13']/div/span
//*[@id='cwbt23']/div/span
//*[@id='cwbt33']/div/span
//*[@id='cwbt43']/div/span
WebElement box = d.findElement(By.xpath("//*[@id='cwmcwd']"));
for(int i=13;i<=46;i++){
String num = d.findElement(By.xpath("//*[@id='cwbt"+i+"']/div/span")).getText();
if(num.equals(num1)){
d.findElement(By.xpath("//*[@id='cwbt"+i+"']/div/span")).click();
break;
}
}
}
@DataProvider
public Object[][] getData(){
Xls_Reader xls = new Xls_Reader("E:\\Pessoal\\QTPSelenium\\Excel\\Calculator.xlsx");
int rows = xls.getRowCount("Addition");
int cols = xls.getColumnCount("Addition");
Object data[][] = new Object[rows-1][cols-2];
for(int rNum=2;rNum<=rows;rNum++){
for(int cNum=0;cNum<cols-2;cNum++){
System.out.println(xls.getCellData("Addition", cNum, rNum));
data[rNum-2][cNum] = xls.getCellData("Addition", cNum, rNum);
}
}
return data;
}
}
答案 0 :(得分:0)
尝试以下代码/我已根据Java Lang更新
FirefoxDriver driver;
driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
driver.get("https://www.google.co.in/?gfe_rd=cr&ei=2ArXVu7RGafG8AfjsKPgDQ&gws_rd=ssl#q=calculator");
String strJavaScript = "document.getElementById('cwos').textContent= " + num1.trim() + " " + operation.trim() + " " + num2.trim() ;
Object obj;
//org.openqa.selenium.JavascriptExecutor.class.
obj = driver.executeScript(strJavaScript, (Object) null);
driver.findElement(By.xpath(".//*[@id='cwbt45']/div/span")).click();
String answer = driver.findElement(By.id("cwos")).getText();
if (expectedAnswer == null ? answer == null : expectedAnswer.equals(answer)) {
System.out.println("Expected answer and given answer are same.");
}
else
System.out.println("Expected answer and given answer are not same.");
System.out.print(answer);
如果有任何问题,请告诉我。