Selenium WebDriver Java定位具有动态ID的元素

时间:2016-01-14 04:09:55

标签: java html selenium selenium-webdriver

我目前在使用动态ID定位此元素时遇到了麻烦。以下是截图。

enter image description here

enter image description here

我现在拥有的是变量(8)的元素//a [包含(。,'变量(8)')]。我需要的只是“变量”,因为数字8总是在变化。

对此有何想法?任何想法将不胜感激。感谢

4 个答案:

答案 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();