宁静:找不到目标显示 3 秒
Serenity: Cannot find Target showing for 3 seconds
我试图找到一个 Target,它是一个带有消息的小吃店和一个在我单击按钮后仅显示 3 秒的按钮:
如果我暂停调试器,我会找到带有 css 选择器 .mat-snack-bar-container
的元素:
但是在代码中,当我尝试使用相同的选择器获取 Target 时,它永远不会被发现不是 Target,如果我使用驱动程序来查找元素也不会:
actor.attemptsTo(WaitUntil.the(SnackBar.SNACK_BAR_CONTAINER,isCurrentlyVisible()).forNoMoreThan(10).seconds());
我已经尝试了 isCurrentlyVisible
、isVisible
、isPresent
,但什么都没有。
使用 findElement 我也一无所获:
WebElement snackBar = webDriver.findElement((By.cssSelector(".mat-snack-bar-container")));
当我看到步骤的屏幕截图时,我确实看到了小吃店...
有什么想法吗?谢谢!
我认为你需要:
WebElement snackBar = webDriver.findElement((By.cssSelector(".mat-snack-bar-container")));
WebElement snackBar = webDriver.findElement((By.className(".mat-snack-bar-container")));
如果您知道将显示什么文本,那么您可以使用 textToBePresentInElementLocated
方法。让我们看看下面的例子,
HTML:我假设你的HTML会是这样的。
<input class="mat-snack-bar-container"> Workflow testing "sth" saved. </input>
等到文本出现如果你知道预期的文本
WebElement snackBar = wait.until(ExpectedConditions.textToBePresentInElementLocated(By.xpath("//input[@class='mat-snack-bar-container']"), "Workflow testing"));
snackBar.click();
我找到演员找不到小吃店的原因了。在文件 serenity.properties
中,我有这一行: serenity.step.delay=2500
这正是该元素可见的时间。
如果我直接使用驱动程序,这不会受到影响,我可以在屏幕截图和页面源代码中看到小吃店。但是使用演员我有时只能在屏幕截图中看到它。
一旦我将步长延迟降低到 500,我就能够找到该元素。
谢谢大家的帮助!
我试图找到一个 Target,它是一个带有消息的小吃店和一个在我单击按钮后仅显示 3 秒的按钮:
如果我暂停调试器,我会找到带有 css 选择器 .mat-snack-bar-container
的元素:
但是在代码中,当我尝试使用相同的选择器获取 Target 时,它永远不会被发现不是 Target,如果我使用驱动程序来查找元素也不会:
actor.attemptsTo(WaitUntil.the(SnackBar.SNACK_BAR_CONTAINER,isCurrentlyVisible()).forNoMoreThan(10).seconds());
我已经尝试了 isCurrentlyVisible
、isVisible
、isPresent
,但什么都没有。
使用 findElement 我也一无所获:
WebElement snackBar = webDriver.findElement((By.cssSelector(".mat-snack-bar-container")));
当我看到步骤的屏幕截图时,我确实看到了小吃店...
有什么想法吗?谢谢!
我认为你需要:
WebElement snackBar = webDriver.findElement((By.cssSelector(".mat-snack-bar-container")));
WebElement snackBar = webDriver.findElement((By.className(".mat-snack-bar-container")));
如果您知道将显示什么文本,那么您可以使用 textToBePresentInElementLocated
方法。让我们看看下面的例子,
HTML:我假设你的HTML会是这样的。
<input class="mat-snack-bar-container"> Workflow testing "sth" saved. </input>
等到文本出现如果你知道预期的文本
WebElement snackBar = wait.until(ExpectedConditions.textToBePresentInElementLocated(By.xpath("//input[@class='mat-snack-bar-container']"), "Workflow testing"));
snackBar.click();
我找到演员找不到小吃店的原因了。在文件 serenity.properties
中,我有这一行: serenity.step.delay=2500
这正是该元素可见的时间。
如果我直接使用驱动程序,这不会受到影响,我可以在屏幕截图和页面源代码中看到小吃店。但是使用演员我有时只能在屏幕截图中看到它。
一旦我将步长延迟降低到 500,我就能够找到该元素。
谢谢大家的帮助!