下面的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+'
。
答案 0 :(得分:1)
您的XPath表达式只是r中的字符串,因此您应该可以对r或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