为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Selenium 和 Java 通过 sendKeys 方法传递双引号字符串

如何使用 Selenium 和 Java 通过 sendKeys 方法传递双引号字符串

慕仙森 2023-07-28 16:46:06
我正在编写一个 selenium 脚本,其中正在获取 3 个值并将其存储在 String 中。String one = "19292";String two = "Abc";String three = "def";我希望它以(一+二+三)的形式发送文本,但它们都带有双引号。所以最终结果应该是"19292""Abc""def"我怎样才能做到这一点 ?我尝试过使用反斜杠来使用转义机制,但是每当我使用它而不是获取字符串值时,它都会打印文本。对于例如:\"one\" prints "one" rather than "19292"
查看完整描述

4 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

尝试这样:


field.sendKeys("\"" + one + "\"\"" + two + "\"\"" + three + "\"");

我刚刚检查了硒,它有效。进入字段的输入是:“19292”“Abc”“def”


或者,如果您不知道字符串的数量,那么下面是将转换为引号格式的方法。


public static void main(String[] args) {

    String one = "19292";

    String two = "Abc";

    String three = "def";


    System.out.println(surroundWithDoubleQuotes(one, two, three));



}


public static String surroundWithDoubleQuotes(String... input) {

    if(input == null || input.length == 0) {

        return "";

    }

    StringBuilder builder = new StringBuilder();

    for(String arg : input) {

        builder.append("\"\"");

        builder.append(arg);

    }

    builder.append("\"");

    builder.deleteCharAt(0);


    return builder.toString();

}


查看完整回答
反对 回复 2023-07-28
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

尝试:

String str = "\""+one+"\"\""+two+"\"\""+three+"\"";
System.out.println(str);

这将打印"19292""Abc""def"


查看完整回答
反对 回复 2023-07-28
?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

如果您的用例是将结果字符串作为 传递"19292" "Abc" "def",那么以下Strings声明肯定不会帮助达到目的:


String one = "19292";

String two = "Abc";

String three = "def";

相反,您需要执行以下操作:


String one = " \"19292\" ";

String two = " \"Abc\" ";

String three = " \"def\" ";

使用Google 主页的文本框"19292" "Abc" "def"将字符串作为 ** **发送的示例,您可以使用以下定位器策略:

代码块:


public class A_demo 

{

    public static void main(String[] args) throws Exception 

    {

        String one = " \"19292\" ";

        String two = " \"Abc\" ";

        String three = " \"def\" ";

        System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");

        ChromeOptions options = new ChromeOptions();

        options.addArguments("start-maximized");

        options.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation"));

        options.setExperimentalOption("useAutomationExtension", false);

        WebDriver driver = new ChromeDriver(options);

        driver.get("https://www.google.com/");

        new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.name("q"))).sendKeys(one + two + three);

    }

}

浏览器快照:

https://img2.sycdn.imooc.com/64c380910001f35313660767.jpg

查看完整回答
反对 回复 2023-07-28
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

尝试这个:

String text = "\"" + one + "\"\"" + two + "\"\"" + three + "\"";


查看完整回答
反对 回复 2023-07-28
  • 4 回答
  • 0 关注
  • 189 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信