2015-06-19 28 views
0

我想创建一个公共类来点击一个网页上的一个项目,只需将它传递给我使用的xpath和驱动程序。我希望能够只是做:添加一个公共类来点击Java使用xpath Selenium

ClickByXpath(driver, "/html/body/div/div[3]/form/div[2]/div[2]/div[1]/div[1]/div[3]/div/div[3]/div/input[1]"); 

下面是我使用的代码,但它的抱怨,该方法XPath字符串是不适用:

package TestPackage; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.firefox.FirefoxDriver; 

public class Question { 
    public static void main(String[] args) throws Exception { 
     // The Firefox driver supports javascript 
     WebDriver driver = new FirefoxDriver(); 
     // Go to google 
     driver.get("http://www.google.com"); 
     //click in the searchbox 
     ClickByXpath(driver, "/html/body/div/div[3]/form/div[2]/div[2]/div[1]/div[1]/div[3]/div/div[3]/div/input[1]"); 
    } 
     public static void ClickByXpath(WebDriver [] driverUsed , String[] XPath_to_click) throws Exception { 
      driverUsed.findElement(By.xpath(XPath_to_click)).click(); 
     } 
} 
+1

只是想知道为什么你会传递这两种类型的数组,而一次只能使用一个实例? – Saifur

+0

感谢您的回复。我只是从这开始,所以无疑是做错了。他们是阵列吗,因为我用方括号? – Andrew

回答

1

你传递一个字符串:

ClickByXpath(driver, "/html/body/div/div[3]/form/div[2]/div[2]/div[1]/div[1]/div[3]/div/div[3]/div/input[1]"); 

但你的方法签名说,你应该通过一个字符串数组

public static void ClickByXpath(WebDriver [] driverUsed , String[] XPath_to_click) 

与您的驱动程序相同的问题!如果更改签名和删除阵列,你应该是好:

public static void ClickByXpath(WebDriver driverUsed , String XPath_to_click) 

请注意,这无关硒,这是基本的Java编程(很?)。您应该首先考虑帮助学习至少编程的基础知识。