2016-09-29 13 views
0

Код Rselenium ниже приведен из ответа/комментария к this SO post. Образец кода есть.Можно ли использовать переменную с/переданной в выражение XPath в функции Rselenium?

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, "]"); option <- remDr $ findElement (using = 'xpath', u) ' – Chrisss

+1

whoops, я предполагаю, что вам все еще нужны одиночные кавычки, поэтому ...' u <- paste ("// select [@ id = 'main_ddYear' ]/option [@ value = ", sQuote (var1),"] ");' – Chrisss

+1

Селекторы CSS и XPath - это две совершенно разные вещи. Это не два имени для одного и того же. Если вы ищете общий термин, вы, вероятно, думаете о «локаторе». – BoltClock

ответ

1

Ваше выражение XPath это просто строка в , так что вы должны быть в состоянии использовать любой подход к string concatenation или interpolation:

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 ', по тем же линиям. –