2015-09-18 59 views
3

在通過JAVA執行selenium腳本時,出現以下錯誤。Selenium顯示錯誤「類型WebElement中的sendKeys(CharSequence [])方法不適用於參數(字符串)」

錯誤: 「的方法的SendKeys(CharSequence的[])中的類型WebElement是 不適用於參數(字符串)」

我的代碼:

package Pkg_09; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.ie.InternetExplorerDriver; 

public class Practice { 

    public static void main(String[] args) { 

     WebDriver driver1; 

     driver1.get("www.google.com"); 
     driver1.findElement(By.id("gs_htif0")).sendKeys("Sachin Tendulkar"); 
     driver1.findElement(By.id("aa")).sendKeys("xx"); 
     driver1.findElement(By.name("btnK")).click(); 
    } 
} 

請讓我知道是否有什麼我錯過了。

+3

您使用的是什麼版本的Java和Selenium?這看起來像Java的一個老版本,並不瞭解'String'可以分配給'CharSequence'變量。在語義上,'CharSequence ...'會高興地接受no,一個或多個'String'參數。 –

+0

我一直都在傳遞sendKeys(String),它工作正常。 – JeffC

+0

非常感謝您的回覆。我正在使用Java 8和Selenium版本2.39.0。 –

回答

1

此行爲取決於您用於運行此代碼的Java版本。從版本1.6開始,可以將單個String實例作爲CharSequences傳遞,這可以通過sendKeys()方法作爲參數傳遞。但是,如果您使用舊版本或在構建腳本中將其指定爲源/目標版本,則應該傳遞一個CharSequences數組作爲sendKeys()方法的參數。所以它可以這樣做:

public static void main(String[] args) { 
    WebDriver driver1; 
    driver1.get("www.google.com"); 
    driver1.findElement(By.id("gs_htif0")).sendKeys(new String[] {"Sachin Tendulkar"}); 
    driver1.findElement(By.id("aa")).sendKeys(new String[] {"xx"}); 
    driver1.findElement(By.name("btnK")).click(); 
} 
+0

非常感謝您的回覆。我正在使用Java 8和Selenium版本2.39.0和Firefox版本25.請告訴我我應該使用JAVA,Selenium和Firefox的版本? –

+0

首先,試着實現上面的一個例子,如果它的工作無需檢查硒版本 – Stanislav

0

我們正在使用eclipse氧氣版本與Java 8,它的工作對我們來說很好。 我們曾經遇到過與月食Luna和靛藍相同的問題

0

當您嘗試在較低版本的硒中使用JAVA 8時,會發生這種情況,請將您的罐子更改爲硒3.0.1,並且一切都應該正常工作。

1

嘗試下面的代碼:

driver1.findElement(By.id("aa")).sendKeys(new String[]{"xx"}); 
0

如果有人仍面臨這個問題(的SendKeys錯誤),請嘗試以下。

下載「cldc-1.1-java5.0.jar」並將其添加到Build path - >添加外部庫。

+0

這是寫入解決方案。下載「cldc-1.1-java5.0.jar」並將其添加到Build path - >添加外部庫。 – user7977023

相關問題