我目前在使用动态ID定位此元素时遇到了麻烦。以下是截图。
我现在拥有的是变量(8)的元素//a [包含(。,'变量(8)')]。我需要的只是“变量”,因为数字8总是在变化。
对此有何想法?任何想法将不胜感激。感谢
答案 0 :(得分:2)
首先,'变量(8)'不是Id,它的文本。 Id不是动态的,因为它们代表web元素的唯一标识符。这将是这样的(基于您的示例):
<div class="field" id="fieldId">
至于你的问题,你可以通过部分链接文本找到元素:
driver.findElement(By.partialLinkText("Variables"));
这将为您提供a
元素,而不是数字是什么。
答案 1 :(得分:1)
我从您的问题中了解到,您希望找到包含文字&#34;变量&#34;的//div[@class="field"]/a[contains(.,"Variables")]
标记。
尝试使用这个xpath:
<a>
此xpath将在div标记后面找到<a>
标记,类名为= field,而包含MemberwiseClone()
标记的方法将找到包含文本的元素&#34;变量&#34;
答案 2 :(得分:1)
您可以尝试以下方法:
driver.findElement(By.cssSelector( “A:含有( '变量')”));
如果您想要“变量”一词,请使用以下内容:
String str = driver.findElement(By.cssSelector(“a:contains('Variables')”))。getText()。split(“”)[0];
希望这有助于......
答案 3 :(得分:0)
试试这个:
String varText = driver.findElement(By.cssSelector("div.triggerFirst>div:nth-child(1)>a")).getText();