请告诉我我的英语是否清楚。 另外,如果之前有人问过这个问题,我深表歉意,但根据我的研究,我无法找到答案。
我有一个 HTML 前端页面,上面有各种按钮(不同的应用程序名称)。它的工作方式应该是,当用户单击一个按钮时,它将转到另一个页面,并对该页面进行屏幕截图并保存到某个位置。我已经完成了这个加载页面和屏幕截图/保存功能的java代码和BDD,
我需要帮助的部分是按钮单击触发器,即 当用户单击按钮 A 或 B 或 C 时(以上逻辑)
因为前端有多个按钮,我如何在BDD场景后面编写java函数来检查用户单击了哪个按钮,以便它重定向到适当的页面(使用场景大纲中的示例)
以下是我想要实现的目标,但我对任何替代方案持开放态度。
@When user clicks on {string} then webdriverAgent opens {url}$
public boolean checkifbuttonisclicked(String xpath, String url) throws exception {
// if (driver.findElement(By.xpath(xpath)).Click()) {
//}
if (driver.findElement(By.xpath(xpath)).isSelected()) {
TakeaScreenshotofDesktop(app, yr); //separate function responsible for the screenshot
}
}
所以基本上,
Scenario Outline:
Load HTML Page (with multiple buttons)
When user clicks on <button>
Open <url>
Examples
button | url
App1 | https://stackoverflow.com |
App2 | https://google.com |
看来你让事情变得比需要的更复杂了。
在 HTML 前端页面上,为每个所需的应用程序/URL 创建一个输入,例如
<form action="https://stackoverflow.com">
<input type="submit" value="App1" />
</form>
<form action="https://google.com">
<input type="submit" value="App2" />
</form>
这样,当您单击按钮时,它就会导航到所需的 URL。
现在对于 Java 方法,您传入应用程序名称,例如“App1”,然后单击具有该值的相应 INPUT。
public void ClickApp(String appName) {
driver.findElement(By.cssSelector("input[value='" + appName + "']")).click();
}
当您这样做时,您不必传入 URL...它位于页面的 HTML 中。