ซีลีเนียมแสดงข้อผิดพลาดวิธีการ sendKeys (CharSequence []) ในประเภท WebElement ไม่สามารถใช้ได้กับอาร์กิวเมนต์ (สตริง)

ขณะรันสคริปต์ซีลีเนียมโดย JAVA ฉันได้รับข้อผิดพลาดด้านล่าง

ข้อผิดพลาด: "วิธีการ sendKeys (CharSequence []) ในประเภท WebElement ไม่สามารถใช้ได้กับอาร์กิวเมนต์ (String)"

รหัสของฉัน:

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();
    }
}

กรุณาแจ้งให้เราทราบหากมีสิ่งใดที่ฉันพลาดไป


person Swapnil Gandhile    schedule 18.09.2015    source แหล่งที่มา
comment
คุณใช้ Java และ Selenium เวอร์ชันใดอยู่ ดูเหมือนว่า Java เวอร์ชันเก่าจะไม่เข้าใจว่า String สามารถกำหนดให้กับ CharSequence vararg ได้ ตามความหมายแล้ว CharSequence... จะยอมรับพารามิเตอร์ String หนึ่งหรือหลายพารามิเตอร์อย่างมีความสุข   -  person Philipp Reichart    schedule 18.09.2015
comment
ฉันส่ง sendKeys(String) ตลอดเวลาและทำงานได้ดี   -  person JeffC    schedule 18.09.2015
comment
ขอบคุณมากสำหรับการตอบกลับ ฉันใช้ Java 8 และ Selenium เวอร์ชัน 2.39.0   -  person Swapnil Gandhile    schedule 21.09.2015


คำตอบ (5)


ลักษณะการทำงานนี้ขึ้นอยู่กับเวอร์ชัน Java ที่คุณใช้เพื่อเรียกใช้โค้ดนี้ เนื่องจากเวอร์ชัน 1.6 จึงเป็นเรื่องปกติที่จะส่งอินสแตนซ์ String เดี่ยวเป็น CharSequences ซึ่งคาดว่าจะเป็นพารามิเตอร์โดยเมธอด sendKeys() แต่ถ้าคุณใช้เวอร์ชันเก่ากว่าหรือระบุไว้ในสคริปต์บิลด์เป็นเวอร์ชันต้นทาง/เป้าหมาย คุณควรส่ง Array of 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();
}
person Stanislav    schedule 18.09.2015
comment
ขอบคุณมากสำหรับการตอบกลับ ฉันใช้ Java 8 และ Selenium เวอร์ชัน 2.39.0.& Firefox เวอร์ชัน 25 โปรดบอกฉันว่าฉันควรใช้เวอร์ชันของ JAVA, Selenium & Firefox อย่างไร - person Swapnil Gandhile; 21.09.2015
comment
ก่อนอื่น ให้ลองใช้ตัวอย่างข้างต้น ถ้ามันได้ผล ไม่จำเป็นต้องตรวจสอบเวอร์ชันของซีลีเนียม - person Stanislav; 21.09.2015

ลองโค้ดด้านล่าง:

driver1.findElement(By.id("aa")).sendKeys(new String[]{"xx"});
person palki wadhwa    schedule 24.03.2017

เรากำลังใช้เวอร์ชัน eclipse oxygen กับ Java 8 และมันทำงานได้ดีสำหรับเรา เราประสบปัญหาเดียวกันกับ eclipse Luna และ indigo

person Shubham Jain    schedule 30.01.2017

สิ่งนี้จะเกิดขึ้นเมื่อคุณพยายามใช้ JAVA 8 กับ selenium เวอร์ชันต่ำกว่า เปลี่ยน jars ของคุณเป็น selenium 3.0.1 และทุกอย่างจะทำงานได้ดี

person Kushal    schedule 31.01.2017

หากใครยังคงประสบปัญหานี้ (ข้อผิดพลาด Sendkeys) โปรดลองด้านล่าง

ดาวน์โหลด "cldc-1.1-java5.0.jar" และเพิ่มใน Build path--> เพิ่มไลบรารีภายนอก

person user7977023    schedule 07.05.2017
comment
นี่คือวิธีแก้ปัญหาการเขียน ดาวน์โหลด cldc-1.1-java5.0.jar และเพิ่มใน Build path--› เพิ่มไลบรารีภายนอก - person user7977023; 07.05.2017