Selenium C# - 具有动态更改id属性的FindElement

时间:2018-04-06 05:17:27

标签: c# css selenium selenium-webdriver xpath

我正在尝试查找动态变化的元素。 例如,

<span id="ygtvlabelel105" class="ygtvlabel gticon-f214_casesTree-0">LLB Application</span>

是否可以使用上述“LLB Application”中的文字找到元素?

var element = Driver.FindElement(By.??????("//a[contains(text(), 'LLB Application')]"));

XPath只包含Id's',//*[@id="ygtvlabelel105"]中的文字,并且每次都会更改数字。

1 个答案:

答案 0 :(得分:0)

根据您提供的用于查找元素的HTML,您可以使用以下任一定位器策略

  • CssSelector

    var element = Driver.FindElement(By.CssSelector("span.ygtvlabel.gticon-f214_casesTree-0[id^='ygtvlabelel']"));
    
  • XPath

    var element = Driver.FindElement(By.XPath("//span[@class='ygtvlabel gticon-f214_casesTree-0' and starts-with(@id,'ygtvlabelel')]"));
    
  • XPath使用文字 LLB应用进行更细化:

    var element = Driver.FindElement(By.XPath("//span[@class='ygtvlabel gticon-f214_casesTree-0' and starts-with(@id,'ygtvlabelel') and contains(.,'LLB Application')]"));