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

时间:2016-09-29 03:45:36

标签: r xpath rselenium

下面的Rselenium代码来自对this SO post的回答/评论。示例代码在那里。

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+'

1 个答案:

答案 0 :(得分:1)

您的XPath表达式只是中的字符串,因此您应该可以对string concatenation使用任何interpolation方法:

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! CollectionViewCell

    cell.myLabel.text = self.items[indexPath.row]

    cell.deleteBtn?.layer.setValue(indexPath.row, forKey: "Cdelete")
    cell.deleteBtn?.addTarget(self, action: Selector(("deleteColor:")), for: UIControlEvents.touchUpInside)


    cell.backgroundColor = UIColor.cyan // make cell more visible in our example project

    return cell
}

func deleteColor(sender:UIButton) {

    let i : Int = (sender.layer.value(forKey: "Cdelete")) as! Int
    self.items.remove(at: i)
    collectionView.reloadData()
}

除此之外,还可以通过删除周围的引号将值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)) 与XPath中的数字进行比较:

2014