问题标签 [selenide]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
596 浏览

java - 在 Selenide/Selenium 中模板定位器的正确方法是什么?

我正在尝试在我的 UI 测试中使用页面对象模式。许多示例假设在类字段中保存 By (Locator)。其他建议保存 WebElement(或 SelenideElement,如果您使用的是 Selenide)。虽然,两者都非常适合硬编码定位器,但我不知道如何将其用于路径包含变量的定位器。

例如,如何将这个定位器保存在类字段中?

0 投票
4 回答
582 浏览

selenide - Selenide - 找到并填充元素

我未能通过 selenide 分配以下元素(我需要查找并用文本(ID)填充它:

0 投票
1 回答
388 浏览

java - 能够从 IntelliJ 运行配置运行 JUnitCore 测试运行器,但不能从命令行运行

我正在编写一个程序来自动化访客注册,使用 selenide (4.4.x) 和 junit (4.12)。如果我在 IDE 中将它们作为 JUnit 测试运行,则测试运行良好,但为了更方便的使用,我想从主/命令行运行它。

我设法让它与 IntelliJ 运行配置一起工作,但当我从命令行尝试相同的事情时却没有。基本上,我有一个启动和停止 Selenium/ide WebDriver 的抽象类,一个RegisterVisitorTest.java包含实际预订逻辑的具体测试类 ( ) 和RunTest.java一个main方法。请参阅下面的 MWE(删除不相关的代码,因此它可能无法执行)。

如果我使用以下命令创建 IntelliJ 运行配置:

作为 VM 选项,它执行得非常好,并打印“in RunTest.main”、“RegisterVisitorTest”,并为我填写表格。但是,如果我使用创建一个 jarmvn install并将其运行为

其中 `%junit_path% 包含对 junit.jar 和 hamcrest.jar 的引用,它确实进入 main 并打印“in RunTest.main”,但它实际上并没有运行测试。好消息是我也没有出错。

但是,当我从命令行直接将其作为 JUnitCore 运行程序运行时:

我得到以下输出:

困扰我的是,当我从 IDE 运行它时它运行良好,但是当我从命令行运行 main 时它不会触发测试,并且当我直接运行测试时它会失败。在我的 Maven 项目中,我确实有许多红线,但这似乎并不重要……

无论如何,这似乎归结为上面提到的那个 WebDriverEventListener ,但是如果我尝试添加一个 WebDriverEventListener ,它显然可以找到依赖项并自动添加正确的导入语句,尽管如果我再做一个,这不会改变结果mvn install

我错过了什么吗?

编辑:虽然在其他 SO 问题中找到了“找不到类”,但它不是提到的 hadoop 问题的重复,因为我设置了正确的环境变量。

我能够运行其他 JAR,只是不能运行这个。

通过使用 Maven 程序集插件包含所有依赖项来解决。

MWE(尝试):

0 投票
1 回答
463 浏览

java - 我的 Selenide 代码没有启动浏览器,但显示通过测试用例

0 投票
1 回答
419 浏览

java - 如果 HTML 代码没有更改,如何检查图像是否已更改?

如果 HTML 代码没有更改,如何检查图像是否已更改?听起来可能有点复杂,所以我会尝试添加一些细节。

首先,我使用 Kotlin + Selenide 编写测试,但如果您的提示\技巧\答案将使用 Java + Selenium,我完全可以。

其次,情况如下:我有一个用户未来厨房的可视化工具,他\她可以在其中添加\编辑\删除不同的东西,例如水槽和水龙头。有几个预设:其中一些带有橱柜,其中一些带有桌子,桌子和椅子等。它的编码如下:<a href="#" class="preset-buttons-selected" style="background-image: url("https://s3.amazonaws.com/bla-bla-bla/some_image.png");"></a>

因此,当用户更改某些内容时,例如添加一个接收器,图像实际上已更改,但 html 代码中没有任何更改,这就是为什么我无法验证自动测试中的更改。我看到从s3.amazonaws.com中提取了新图像,但它仅在浏览器控制台的网络选项卡中可见,在页面的 html 代码中不可见。

所以,我的问题是,我能否以某种方式验证 UI 自动化测试中的更改?

0 投票
2 回答
3370 浏览

selenium - 使用 Selenium Grid 运行 Selenide?

在 Selenide 中,创建驱动程序只需使用:

连同一些系统属性设置 webdriver 和浏览器使用:

然而,在 Selenium 中,您必须声明驱动程序并设置功能。

如何在 Selenide 中配置我的测试用例以在 Selenium Grid 上并行运行?

有人有样品设置吗?

0 投票
1 回答
962 浏览

java - 如何等待与 Selenide 相同的浏览器标签标题文本?

我想了解如何使用 selenide / selenium 中的窗口标题文本让服务员进行断言

像这样的东西:

你能帮我吗?

0 投票
1 回答
605 浏览

groovy - Selenide test not able to load correct element on a newly opened tab/window

I am using Selenide to open a sample input form on w3schools.com (found here).

The test inputs a name into the form and clicks submit, which then opens a new page in a separate tab/window which displays the request params in a div.

Sample HTML form screenshot

Returned results screenshot

The following is my test code:

...where webdriver.chrome.driver is a passed-in environment variable pointing to the correct location of chromedriver.exe.

The test does open the initial form page and type in the first/last name correctly. When it clicks the submit button, it waits for the second page to load and display the request params.

As a note, the error happens regardless of whether or not my waitUntil() method call is present or not. Many of the other StackOverflow posts suggest doing something like that to fix the problem, though the Selenide docs say that the shouldHave() method call in my then clause should automatically do a fluent wait.

This is the output of my test case:

So, it's clear that, as per the test output, it's grabbing the xPath of the initial page, not the second page.

Is there something that I'm missing or doing wrong? Do I need to instantiate a new object or something for every new page?

0 投票
1 回答
471 浏览

kotlin - Kotlin\Java - 像“$1”这样的字符串到数字

所以我正在Kotlin + Selenide为定价编写自动化测试。我的购物车中有 59 件商品。每个项目的编码如下:

我得到的价格val price1 = $(#some-locator).text返回价格为“$ 33.00”。我需要得到所有的价格,然后计算它们。

将不胜感激任何想法。谢谢。

0 投票
2 回答
2671 浏览

java - 使用 selenide webdriver 上传文件,无需任何输入

我正在尝试使用 java selenide 自动化测试上传文件。

我写测试的地方使用上传框,附近没有任何输入值。

上传框是id='file'

我尝试使用:

但这无济于事,因为没有用于文件上传的输入框。

然后我尝试使用:

使元素可见,但出现未知错误:无法聚焦元素\n ...

我得到了它,但这不是我想要的:

有没有其他方法可以从这种上传中获取文件?我想从 Intellij 包上传它