变量可以与 Rselenium 函数中的 XPath 表达式一起使用/传递给它吗?

Can a variable be used with / passed to an XPath expression in an Rselenium function?

下面的 Rselenium 代码来自 answer/comment 到 。示例代码在那里。

option <- remDr$findElement(using = 'xpath', "//select[@id='main_ddYear']/option[@value='2014']")
option$clickElement()

注意第一行末尾附近的文字“2014”。

是否可以使用变量代替文字“2014”?例如,

var1 = "2014"
option <- remDr$findElement(using = 'xpath', "//select[@id='main_ddYear']/option[@value= var1 ]")

我试过只使用变量 var1

还尝试了单引号 (') 内外的大括号 {} {var1}, '{var1}', {'var1'},这是其他 post 的想法。

同样,我尝试使用加号,正如 post 中关于如何将变量传递给字符串 Java 中所建议的那样。例如,+ var1 +, +var+, '+var1+'.

您的 XPath 表达式只是 , so you should be able to use any approach for string concatenation or 中的一个字符串:

var1 = "2014"

option <- remDr$findElement(using = 'xpath', paste("//select[@id='main_ddYear']/option[@value='", var1, "']"))
option <- remDr$findElement(using = 'xpath', sprintf("//select[@id='main_ddYear']/option[@value='%s']", var1))

顺便说一句,也可以通过删除周围的引号将值 2014 与 XPath 中的数字进行比较:

option <- remDr$findElement(using = 'xpath', paste("//select[@id='main_ddYear']/option[@value=", var1, "]"))
option <- remDr$findElement(using = 'xpath', sprintf("//select[@id='main_ddYear']/option[@value=%s]", var1))