Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在文本框中输入左括号_Java_Selenium_Selenium Webdriver - Fatal编程技术网

Java 如何在文本框中输入左括号

Java 如何在文本框中输入左括号,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我需要将文本“英语(美国)”传递到文本框中。但当我使用以下命令时: driver.findElement(By.id("defaultLang")).sendKeys("English (United States)"); String a = (Keys.chord(Keys.SHIFT,"9")); String b = "AAA"; String c = "BBB)"; driver.findElement(By.id("ID")).sendKeys(b+

我需要将文本“英语(美国)”传递到文本框中。但当我使用以下命令时:

driver.findElement(By.id("defaultLang")).sendKeys("English (United States)");
    String a = (Keys.chord(Keys.SHIFT,"9"));
    String b = "AAA";
    String c = "BBB)";
    driver.findElement(By.id("ID")).sendKeys(b+a+c);

它只在文本框中输入“English United States”)。当WebDriver将文本写入文本框时,开括号将丢失。

您应该使用escape发送selenium web driver中的特殊字符

    String a = (Keys.chord(Keys.SHIFT,"9"));
    String b = "AAA";
    String c = "BBB)";
    driver.findElement(By.id("ID")).sendKeys(b+a+c);
我想你可以试试这样的东西:

driver.findElement(By.id("defaultLang")).sendKeys("English \(United States\)");
    String a = (Keys.chord(Keys.SHIFT,"9"));
    String b = "AAA";
    String c = "BBB)";
    driver.findElement(By.id("ID")).sendKeys(b+a+c);

我希望它可以帮助您

这看起来像是一个已知的bug。请参阅第6822期

    String a = (Keys.chord(Keys.SHIFT,"9"));
    String b = "AAA";
    String c = "BBB)";
    driver.findElement(By.id("ID")).sendKeys(b+a+c);
现在可以做的是通过直接注入JavaScript来设置它

// untested Java code, provides only the logic, you need debug yourself
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].setAttribute('value', arguments[1]);", driver.findElement(By.id("defaultLang")), "English (United States)");
    String a = (Keys.chord(Keys.SHIFT,"9"));
    String b = "AAA";
    String c = "BBB)";
    driver.findElement(By.id("ID")).sendKeys(b+a+c);

通过使用此选项,可以在文本框中输入左括号

    String a = (Keys.chord(Keys.SHIFT,"9"));
    String b = "AAA";
    String c = "BBB)";
    driver.findElement(By.id("ID")).sendKeys(b+a+c);
最终O/p为:AAA(BBB)

    String a = (Keys.chord(Keys.SHIFT,"9"));
    String b = "AAA";
    String c = "BBB)";
    driver.findElement(By.id("ID")).sendKeys(b+a+c);