HTML 代码:
<a id="id47" title="textA"
onclick="var wcall=wicketAjaxGet('?wicket:interface=:1blablabla')"
href="#">
<span class="icon" style="background-image: url('folder/background.png')"></span>
<span>textB</span>
我想使用 Selenium webdriver 找到并单击上面的图标。通常,我会使用 ID 来执行此操作,但不幸的是,程序会无缘无故地不断更改这些 ID,因此我必须使用标题 (textA) 或 Span (textB) 来定位元素
我想出了以下内容:
public void performclick() throws Throwable {
Thread.sleep(5000);
driver.findElement(By.xpath("//span[contains(text('textB')]")).click();
}
或
public void performclick() throws Throwable {
Thread.sleep(5000);
driver.findElement(By.xpath("//*[contains(text('textA')]")).click();
}
以及这些方面的任何偏差。 每次我运行该场景时,它都没有任何返回。我哪里没猜对?
最佳答案
您也可以尝试 cssSelectors,
css = a[title='textA']
或
如果您的 ID 的某些部分保持不变,例如,在您的情况下,如果 id47
更改为 id48
或 id200
等。 ..您可以使用包含(即*)或以(即^)开头:
css = a[id*='id'][title='textA']
或
css = a[id^='id'][title='textA']
对于跨度(textB),以下内容可以:
css = span.icon + span
这里+用于定位下一个兄弟。
关于java - 使用 Selenium Webdriver 找不到特定标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22043895/