gpt4 book ai didi

java - arg 参数中的代码模型/引号 (")

转载 作者:行者123 更新时间:2023-12-01 13:48:18 29 4
gpt4 key购买 nike

我尝试在 codemodel(Sun) 中创建下一个表达式:

  driver.findElement(By.xpath("//div[text()=\""+whatToclick+"\"]/parent::span/parent::span")).click();

所以whatToclick将是我的函数中的一个参数。

所以我写了下一个:

    method.body().invoke(JExpr.ref("driver"), "findElement").arg(jc.ref(By.class).staticInvoke("xpath").arg("//div[text()=\"+"+ whatToclick.name() +"+\"]/parent::span/parent::span")).invoke("click");

我有两个问题:

  1. 我没有成功将whatToClick 作为参数。它总是在引号中(因为我的表达式是一个字符串,我必须放置 /",否则它会关闭字符串。)

  2. 创建的表达式没有 click() 部分。

有什么帮助吗?

最佳答案

请尝试以下方法,它使用 JExpr.lit() 直接引用字符串,并使用 .add() 连接字符串和变量。它还使用方法主体上的 add() 方法来添加 click() 调用:

method.body().add(JExpr.ref("driver").invoke("findElement")
.arg(codeModel.ref(By.class).staticInvoke("xpath")
.arg(JExpr.lit("//div[text()=\"+").plus(whatToclick).plus(JExpr.lit("+\"]/parent::span/parent::span"))).invoke("click")));

输出:

driver.findElement(By.xpath((("//div[text()=\"+"+ whatToclick)+"+\"]/parent::span/parent::span")).click());

关于java - arg 参数中的代码模型/引号 ("),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20176036/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com