我要求将文本“英语(美国)”传递到文本框中。但是当我使用以下命令时:
driver.findElement(By.id("defaultLang")).sendKeys("English (United States)");
仅在文本框中输入“英国美国”。当WebDriver将文本写入文本框时,缺少打开括号。
答案 0 :(得分:2)
通过使用此功能,您可以在文本框中输入左括号。
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)
答案 1 :(得分:0)
你应该使用escape在selenium webdriver中发送特殊字符,
我认为你可以尝试这样的事情:
driver.findElement(By.id("defaultLang")).sendKeys("English \(United States\)");
我希望它可以帮到你
答案 2 :(得分:0)
这看起来像一个已知的错误。请参见问题6822 here。
您现在可以做的是直接注入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)");