gpt4 book ai didi

java - 如何等到不存在具有 ready_to_send 属性的 span 标签或换句话说具有已发送属性的 span 标签

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

我正在使用 SeleniumJava

有许多 divisions (divs) 具有相同的 classspans attributes 不同...

示例 HTML:

<div class="message_bubble">
<span data-icon="ready_to_send" class="">
.....
.....
</span>
</div>

// another div with same class="message_bubble"

<div class="message_bubble">
<span data-icon="sent" class="">
.....
.....
</span>
</div>

// again div with same class="message_bubble"

<div class="message_bubble">
<span data-icon="received" class="">
.....
.....
</span>
</div>

// There are many divs as such

ready_to_send 被发送到服务器时,它的 span attribute 变为 sent

如何让驱动程序等待,直到没有具有 span 属性 ready_to_send 的分区,或者换句话说,所有具有 span attribute sent 的分区。

我的非工作代码是:

private Boolean GetStatus()
{
WebDriverWait UntilSent = new WebDriverWait(driver, 10);

Boolean Status;

Status = UntilSent.until(new ExpectedCondition<Boolean>()
{
public Boolean apply(WebDriver driver)
{
//int elementCount = driver.findElements(By.xpath("//span[@data-icon='ready_to_send']")).size();

int elementCount = driver.findElements(By.xpath("//div[@class='message_bubble']/span[@data-icon='ready_to_send']")).size();
System.out.println("UNSENT count is.... : "+elementCount);

if (elementCount == 0)
return true;
else
return false;
}
});

return Status;
}

最佳答案

调用服务员直到没有<span>带有属性的标签ready_to_send你可以用 not 诱导 WebDriverwait ExpectedConditions的条款连同 presenceOfAllElementsLocatedBy()方法,您可以使用以下解决方案:

Boolean bool1 = new WebDriverWait(driver, 20).until(ExpectedConditions.not(ExpectedConditions.presenceOfAllElementsLocatedBy(By.xpath("//div[@class='message_bubble']/span[@data-icon='ready_to_send']"))));

或者,您也可以使用 induce WebDriverwaitExpectedConditions条款invisibilityOfAllElements()方法,您可以使用以下解决方案:

Boolean bool2 = new WebDriverWait(driver, 20).until(ExpectedConditions.invisibilityOfAllElements(driver.findElements(By.xpath("//div[@class='message_bubble']/span[@data-icon='ready_to_send']"))));

关于java - 如何等到不存在具有 ready_to_send 属性的 span 标签或换句话说具有已发送属性的 span 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51324731/

25 4 0