gpt4 book ai didi

Java - 如何在找不到所有元素时添加第二个元素 Java Selenium

转载 作者:行者123 更新时间:2023-12-01 09:33:44 25 4
gpt4 key购买 nike

我想问如何让我的 for 循环工作,我想做的就是如果找不到所有 6 个元素,则每秒计数一次。我有 6 个图表,我想看看加载 6 个图表需要多长时间,我不在乎 1 个图表是否加载 2 秒,我想看看每个图表都出现需要多长时间。

@Test
public void loadingTime(){
for(int t = 0; t < 100; t++){
WebElement first = driver.findElement(By.xpath("//*[@id=\"chart_mnic\"]/svg"));
WebElement second = driver.findElement(By.xpath("//*[@id=\"chart_ci\"]/canvas[2]"));
WebElement third = driver.findElement(By.xpath("//*[@id=\"//*[@id=\"chart_cnic\"]/canvas[2]"));
WebElement fourth = driver.findElement(By.xpath("//*[@id=\"chart_cac\"]/canvas[2]"));
WebElement fifth = driver.findElement(By.xpath("//*[@id=\"chart_mq\"]/svg"));
WebElement sixth = driver.findElement(By.xpath("//*[@id=\"chart_cq\"]/canvas[2]"));
break;
}
}

所以我想知道我是否通过隐式等待或其他方式来做到这一点?我对编程相当陌生,所以我似乎无法找到解决方案。

任何帮助将不胜感激,即使建议的解决方案完全不同,我也乐于接受想法。

如果有帮助的话,有问题的图表是可点击的。

最佳答案

您的测试的问题是 - 它太简单了:是的,您不关心六次运行中哪一次需要一秒或两秒。但是:您按顺序调用它们。所以你总能得到他们在一起的时间。

您需要更复杂的解决方案;基本上有两种选择:

你受到了“时间方面”的打击;你只需保留该代码即可。但是您按照其他答案的建议进行:并且您自己“测量”每个请求的时间;像:

for each X in requests
now = fetch timestamp
run request X
then = fetch timestamp
delta = (then - now)

当然,当您确实想了解所有这些事情并行运行时会发生什么时,您必须考虑使用 Thread/Runnables。

编辑:

首先,您应该研究衡量请求执行时间的方法;一个起点是 this SO question .

当您对该部分感到满意​​时,您可以查看诸如this之类的示例。了解如何使用线程来并行运行。

关于Java - 如何在找不到所有元素时添加第二个元素 Java Selenium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39169106/

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