gpt4 book ai didi

java - 单击列表底部获取列表顶部的元素

转载 作者:行者123 更新时间:2023-11-30 07:11:30 25 4
gpt4 key购买 nike

我正在使用 JavaSelenium 编写测试。在目标应用程序的某个位置,我有一个列表,因此我需要单击列表底部的一个元素。我使用下面的代码:

wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[text()='4']"))).click();

该列表的 DOM 如下所示:

<div class="verde-items services-items">
<div class="verde-item service" data-service="271">
<div role="button" data-selector-btn="">
<span class="verde-item-name service-name">1</span>
</div>
</div>
<div class="verde-item service" data-service="329">
<div role="button" data-selector-btn="">
<span class="verde-item-name service-name">2</span>
</div>
</div>
<div class="verde-item service" data-service="269">
<div role="button" data-selector-btn="">
<span class="verde-item-name service-name">3</span>
</div>
</div>
<div class="verde-item service" data-service="270">
<div role="button" data-selector-btn="">
<span class="verde-item-name service-name">4</span>
</div>
</div>
</div>

问题是,当我使用 chrome 时,它​​可以工作,但是当我使用 firefox 时,它会向下滚动到元素所在的列表底部,但它会尝试单击列表顶部,因此出现错误:

Element is not clickable at point (781, 9). Other element would receive the click:

最佳答案

正如您所说,该元素位于底部,滚动后可见。

Selenium 尝试滚动到该元素,然后单击它。这是因为 Selenium 不会与元素交互,除非它认为该元素是可见的。

滚动到元素是隐式发生的,因此您只需找到该项目,然后按如下方式使用它:-

WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[text()='4']")));

((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);

wait.until(ExpectedConditions.elementToBeClickable(element)).click();

关于java - 单击列表底部获取列表顶部的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39174171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com