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