【发布时间】:2016-04-04 21:14:29
【问题描述】:
我想在 selenium 中找到带有定位器内容的定位器类型。以下是我编写的通过传递定位器内容来获取定位器类型的函数。
当我执行Verify.java 时,它将转到Function.java 并从那里转到Element.java 查找元素定位器类型并返回函数,在函数中我将执行必要的操作,如发送键或单击。
在Verify.java 中,我给出了文本框和按钮的 Xpath。我的意图是去检查我传递的定位器内容是否属于哪个定位器。
它通过检查第一个 if 本身而不去catch 块并且不移动到else if 来验证其他定位器类型而停止。如果我从第一个 if 到 Xpath 评论它是否工作。它不是循环和检查。
谁能给我建议解决方案?
(Testcase) Verify.Java
----------------------
package cm;
import org.testng.annotations.Test;
public class Verify extends Function{
@Test
public void Check(){
Browser("Chrome", "https://www.google.co.in");
Enter("//*[@id='lst-ib']", "Karthick");
Click(".//*[@id='sblsbb']");
}
}
Function.Java
-------------
package cm;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
public class Function extends Element{
public void Enter(String LocatorContent, String Value) {
FindElement(LocatorContent).sendKeys(Value);
}
public void Click(String LocatorContent) {
FindElement(LocatorContent).click();
}
}
Element.Java
------------
package cm;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
public class Element extends Browser {
public Element()
{
this.driver = driver;
}
public WebElement FindElement(String LocatorContent){
//this.driver = driver;
WebElement elemen = null;
if (driver.findElement(By.id(LocatorContent)).isDisplayed()) {
try {
elemen = driver.findElement(By.id(LocatorContent));
System.out.println("element locator is id");
} catch (Exception e) {
System.out.println("Element Not Found given with Locator Id : "+LocatorContent);
}
return elemen;
}
else if (driver.findElement(By.name(LocatorContent)).isDisplayed()) {
try {
elemen = driver.findElement(By.name(LocatorContent));
} catch (Exception e) {
System.out.println("Element Not Found given with Locator Name : "+LocatorContent);
}
return elemen;
}
else if (driver.findElement(By.className(LocatorContent)).isDisplayed()) {
try {
elemen = driver.findElement(By.className(LocatorContent));
} catch (Exception e) {
System.out.println("Element Not Found given with Locator ClassName : "+LocatorContent);
}
return elemen;
}
else if (driver.findElement(By.cssSelector(LocatorContent)).isDisplayed()) {
try {
elemen = driver.findElement(By.cssSelector(LocatorContent));
} catch (Exception e) {
System.out.println("Element Not Found given with Locator Css : "+LocatorContent);
}
return elemen;
}
else if (driver.findElement(By.xpath(LocatorContent)).isDisplayed()) {
try {
elemen = driver.findElement(By.xpath(LocatorContent));
System.out.println("It Found the element "+LocatorContent);
} catch (Exception e) {
System.out.println("Element Not Found given with Locator Xpath : "+LocatorContent);
}
return elemen;
}
else if (driver.findElement(By.linkText(LocatorContent)).isDisplayed()) {
try {
elemen = driver.findElement(By.linkText(LocatorContent));
} catch (Exception e) {
System.out.println("Element Not Found given with Locator LinkText : "+LocatorContent);
}
return elemen;
}
else if(driver.findElement(By.partialLinkText(LocatorContent)).isDisplayed()) {
{
try {
elemen = driver.findElement(By.partialLinkText(LocatorContent));
} catch (Exception e) {
System.out.println("Element Not Found given with Locator PartialLinkText : "+LocatorContent);
}
return elemen;
}
}
return elemen;
}
}
【问题讨论】: