如何使用以Selenium中的文本开头的类名查找元素

时间:2018-10-24 07:07:21

标签: java selenium selenium-webdriver xpath css-selectors

下面是元素描述:

<div class="css-control-textinput-122aa"><input type="text" aria-required="true" disabled="" required=""</div>

在上面的类中,名称为css-control-textinput-122aa,但是这里的122aa不是固定值,因此会被更改。那么如何只使用className开头的css-control-textinput查找元素?

在我尝试过的代码下面,但是它不起作用:

@FindBy (className = "css-fauxcontrol-textinput-^")
List<WebElement> dataSourceName;

2 个答案:

答案 0 :(得分:6)

delete adjacent需要全套课程。对于部分类名,可以使用className

cssSelector

@FindBy (css = "[class^='css-fauxcontrol-textinput-']") List<WebElement> dataSourceName;

xpath

答案 1 :(得分:2)

您共享的HTML可能存在问题。 'ApiClientException: java.io.InterruptedIOException: thread interrupted' 标签应被 <input type="number" class="form-control" [(ngModel)]="home" name="home" > 关闭,并且实际的 HTML 必须为:

10.00
100.10
100.88
199.99

在这种情况下,仅识别<input>可能无济于事,但我们需要遍历直到子>节点,然后您可以使用以下任一解决方案:

  • <div class="css-control-textinput-122aa"><input type="text" aria-required="true" disabled="" required=""></div>

    <div>
  • <input>

    css
  • 注意:如果您的用例查找元素,则不需要@FindBy (css = "div[class^='css-control-textinput-']>input[type='text']") List<WebElement> dataSourceName; ,但是一个 xpath