java - 使用 Selenium Webdriver 找不到特定标签

标签 java selenium xpath

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 更改为 id48id200 等。 ..您可以使用包含(即*)或以(即^)开头:

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/

相关文章:

ruby - 无法使用 Watir 绕过 Firefox 的不安全证书警告

Selenium 试验机

html - 在 Selenium 中选择第 n 个 child

xpath - Scrapy bot 和 shell 使用相同的 xpath 查询返回不同的结果。为什么?

java - 如何使用正则表达式找出字符串是否包含多个字母/字符?

java - ActionListener 在 Java 中不工作

Java ME (J2ME) 开发 : NetBeans vs Eclipse

java - spring-data-jdbc 依赖项不适用于 pom.xml

selenium - 如何通过Selenium-webdriver和Java从剪贴板粘贴文本?

xml - 将 ref 传递给 XML::XPath 对象到 Perl 中的 sub 不能按预期工作