当前位置: 首页 > 知识库问答 >
问题:

在硒Java中使用数据测试id查找元素

吕英豪
2023-03-14

这是我的HTML树:

<div data-focusable="true" tabindex="0" class="css-1dbjc4n" data-testid="nav-Look up items-item"><div class="css-1dbjc4n"><div class="css-1dbjc4n" data-testid="nav-Look up items-item-Look up items-icon"><div class="css-1dbjc4n"><div dir="auto" class="css-901oao r-1awozwy" data-testid="nav-Look up items-item-Look up items">Look up items</div>

我试图通过data-tesd定位元素

我使用了css选择器和xpath,如下所示:

@FindBy(css = "div[data-testid='nav-Look up items-item']")
@FindBy(xpath = "//div[@data-testid='nav-Look up items-item']")

但它无法定位该元素。

有人能帮忙吗?非常感谢。

共有2个答案

武元白
2023-03-14

你应该这样用

@FindBy(xpath = "//div[@data-testid='nav-Look up items-item']")
WebElement lookUpItems;

您可以(假设您想执行。单击

lookUpItems.click();

家浩瀚
2023-03-14

我只想在这里重写你的树,因为这样我更容易理解。

<div data-focusable="true" tabindex="0" class="css-1dbjc4n" data-testid="nav-Look up items-item">
    <div class="css-1dbjc4n">
        <div class="css-1dbjc4n" data-testid="nav-Look up items-item-Look up items-icon">
            <div class="css-1dbjc4n">
                <div dir="auto" class="css-901oao r-1awozwy" data-testid="nav-Look up items-item-Look up items">Look up items</div>
            </div>
        </div>
    </div>
</div>

您总是可以尝试选择类名称与这样的东西:

WebElement element = driver.findElement(By.className("css-901oao"));

WebElement element = driver.findElement(By.className("r-1awozwy"));

如果这不起作用,您可以尝试使用诸如xPath Finder之类的Chrome扩展来尝试查找绝对xPath,并使用以下方法查找它:

WebElement element = driver.findElement(By.xpath("/html/body/div/div/div/div/div"));

但是,当您尝试选择一个div时,类名更有可能起作用

 类似资料:
  • 问题内容: 我正在将selenium与python配合使用,现在我想按其ID名称的一部分来定位元素,该怎么办? 例如,现在我已经找到了一个ID为 coption5的商品 : 无论如何,我只能使用 coption 来定位此元素吗? 问题答案: 要查找您所在的元素: 要仅通过使用 coption 来定位此元素,可以使用以下 定位策略之一: 使用和: 使用和: 使用和(开头为通配符): 使用和(包含通配

  • [[Img1][Img2[Img3]我试图通过链接文本获取元素。但是低于例外。异常在线程"main"org.openqa.selenium.NoSuchElement异常:没有这样的元素:无法定位元素:{"方法":"链接文本","选择器":"CFDSDSR"} 我尝试切换到帧,但它给出了未找到的帧,但该帧存在: XPath: /html/body/table/tbody/tr/td/form/ta

  • 这是代码: 这是我已经在python上尝试过的: 返回: 你知道吗?谢谢

  • 我正在将Grails2中的一系列单元测试升级到Grails3,并在使用Spock数据驱动测试格式驱动测试的域测试中遇到问题。 当我执行测试时,因为测试执行没有填充测试中的错误、字段和val引用。如前所述,这个测试适用于Grails2.5.5,所以我怀疑我缺少了Grails3中需要的一些东西。 Edited:我删除了原来在setup()中的mockForConstraints()调用,使其无效。

  • 假设我们有一个要测试的代码: 现在假设我们在一个类中放置了两个单元测试。第一个“测试所有内容”,而第二个“什么都不做”: 这是一个IRL示例:我已经看到几十个测试通过用一些无用的代码替换测试内容来“修复”,因为被测试代码的契约随着时间的推移而变化。 现在,PIT“entry”单元是一个包含测试方法的类(而不是单个测试方法本身),因此在上述情况下,PIT不仅会显示100%的行覆盖率,还会显示100%