2016-09-29 28 views
0

下面的Rselenium代碼來自對this SO post的回答/評論。示例代碼在那裏。變量可以與Rselenium函數一起使用/傳遞給XPath表達式嗎?

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'},這是其他職位的想法。

同樣,我嘗試使用加號作爲類似的帖子中建議如何將變量傳遞給Java中的字符串。例如,+ var1 +, +var+, '+var1+'

+0

您可以將其粘貼。 'var1 =「2014」; u < - paste(「// select [@ id ='main_ddYear']/option [@ value =」,var1,「]」);選項< - remDr $ findElement(using ='xpath',u)' – Chrisss

+1

哎呦,我猜你還是需要單引號,所以...''u < - paste(「// select [@ id ='main_ddYear' ]/option [@ value =「,sQuote(var1),」]「);' – Chrisss

+1

CSS選擇器和XPath是兩個完全不同的東西。他們不是同一件事的兩個名字。如果你正在尋找一個通用術語,你可能會想到「定位器」。 – BoltClock

回答

1

你的XPath表達式只是在一個字符串,所以你應該能夠使用任何方法爲string concatenationinterpolation

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)) 
+0

對於未來的搜索者,該方法也適用於'using = css',沿着相同的路線。 –

相關問題