问题标签 [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 投票
1 回答
236 浏览

css - Selenium 测试中的多个选择器

我想测试一个具有响应式布局的页面。某些元素(如菜单)会因分辨率而异。

我怎样才能将它们定位为使用相同的测试类运行?

我在考虑How.CSS, using = "a.normal-link, a#responsive-link"

这是一个好主意吗?有没有更好的方法?

是否可以为特定场合“注入”某种变通方法逻辑?(例如:如果正常的登录按钮不可见,请尝试打开响应式菜单,然后单击另一个(响应式)登录链接)路线。

谢谢

0 投票
1 回答
597 浏览

selenium - 条件等待与隐式等待 -Selenium

请帮助我理解以下问题。请。

我必须获取所有链接并稍后检查它们。我使用了以下代码:

当我在 Linux 上使用这些 api 版本时: Maven 3.1 Selenide v3.5 Selenium v​​2.53 Firefox v45.0.1 然后代码无法花费足够的时间来捕获页面中的链接。然后我必须在获取链接之前添加驱动程序等待。我添加以下内容(这是有条件的等待):

它运行良好,我运行了不止一次。

昨天运行它时我很惊讶,它没有工作并且无法获得足够的时间来获取链接!

因此,我将条件等待替换为隐式等待,并添加以下内容:

现在它工作正常。

  • 发生了什么?

  • 这是什么东西让它有时工作有时不能工作?

  • 如何在保持代码正常运行的情况下返回条件等待?

那么如何恢复这个问题呢?并防止将来发生此问题。

0 投票
1 回答
279 浏览

java - 远程硒网格无法从扫描仪接收字符串,但本地可以

我的问题是什么。当我删除配置字符串时,我在本地环境中收到了很好的测试。但是该字符串在这里,测试永远不会运行,并打印:

java.lang.ClassCastException:java.lang.String 无法转换为 java.util.Map

需要完整的堆栈跟踪?

问题是 - 我做错了什么?如何解决这个问题?我需要运行远程测试,从文件中逐个字符串检查链接,而不是在我的本地环境中。

本地操作系统 Linux Mint 17、Selenide 3.4、Selenium 2.53.0,从 Idea、Remote VM Win7 运行,带有 Selenium 独立服务器集线器和一个节点。驱动标准火狐。

如果我在配置中设置远程服务器,则“打开”命令失败。

java.lang.ClassCastException:java.lang.String 无法转换为 java.util.Map

在 org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:251) 在 org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:131) 在 org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver .java:158) 在 com.codeborne.selenide.webdriver.WebDriverFactory.createRemoteDriver(WebDriverFactory.java:61) 在 com.codeborne.selenide.webdriver.WebDriverFactory.createWebDriver(WebDriverFactory.java:36) 在 com.codeborne.selenide。 impl.WebDriverThreadLocalContainer.createDriver(WebDriverThreadLocalContainer.java:213) at com.codeborne.selenide.impl.WebDriverThreadLocalContainer.getAndCheckWebDriver(WebDriverThreadLocalContainer.java:113) at com.codeborne.selenide.WebDriverRunner.getAndCheckWebDriver(WebDriverRunner.java:118) at com .codeborne.selenide.impl.Navigator。navigateToAbsoluteUrl(Navigator.java:44) at com.codeborne.selenide.impl.Navigator.open(Navigator.java:23) at com.codeborne.selenide.Selenide.open(Selenide.java:51) at SmallOrder.smallOrderTest(SmallOrder .java:44) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java. lang.reflect.Method.invoke(Method.java:498) at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86) at org.testng.internal.Invoker.invokeMethod(Invoker.java:643) at org .testng.internal.Invoker.invokeTestMethod(Invoker.java:820) 在 org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1128) 在 org.testng。internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129) at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112) at org.testng.TestRunner.privateRun(TestRunner.java:782) at org.testng.TestRunner .run(TestRunner.java:632) at org.testng.SuiteRunner.runTest(SuiteRunner.java:366) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361) at org.testng.SuiteRunner.privateRun(SuiteRunner. java:319) at org.testng.SuiteRunner.run(SuiteRunner.java:268) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244) 在 org.testng.TestNG.runSuitesLocally(TestNG.java:1169) 在 org.testng.TestNG.run(TestNG.java:1064) 在 org.testng.IDEARemoteTestNG .在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 的 org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:121) 运行(IDEARemoteTestNG.java:74)在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 com.intellij.rt.execution.application.AppMain.main(AppMain.java :144)com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 上的 reflect.Method.invoke(Method.java:498)com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 上的 reflect.Method.invoke(Method.java:498)

0 投票
0 回答
96 浏览

css - $("css selector") 和 $(By.linkText("text")) 的区别?

我需要定位一个元素,我使用了以下两种方式:

但我对这种方式有问题,因为一些 CSS 样式会不时改变。所以我切换到以下内容:

由于登录文本总是会出现,即使在 css 样式中发生变化。

问题:使用第二种方法时,一些测试失败了,尽管它必须做与第一种方法相同的工作。所有测试都使用第一种方式运行良好。

它们之间有什么区别?

毫升

0 投票
1 回答
581 浏览

java - maven 找不到符号符号:类 ProxyServer-browsermob

我正在使用以下示例添加带有 Selenide 和 Selenium的代理browsermob 。我使用了这个链接

我用 Eclipse 运行它并成功运行它。但是当我用Maven尝试它时。我有以下错误:

位置:包 net.lightbody.bmp.proxymaven 找不到符号符号:类 ProxyServer

我的 Pom.xml:

0 投票
1 回答
1676 浏览

javascript - Javascript 不适用于 Selenide 和 PhantomJS

我正在使用 PhantomJS 和 Selenide 来自动化网页浏览活动的 IntelliJ 项目。为了运行 Javascript 命令,我们在 Java 代码中使用了 executeJavascript() 方法。我们在代码中多次调用此方法来执行我们想要的 Javascript 命令。

对于这种特殊情况,我们正在制作一个程序,该程序应自动将我们登录到Footlocker

程序代码:

当我们运行程序时,executeJavascript() 命令实际上并没有被执行,但是当我们在 IntelliJ 表达式执行器(在调试器中)中一个一个地运行每个命令时,它们就起作用了。

有人知道这里发生了什么吗?

0 投票
3 回答
3291 浏览

java - Selenium:帮助验证元素是否按价格排序

基本上,我了解它是如何工作的,但我无法将它们组合在一起。所以我有cssSelector所有排序的元素。

我知道这些元素的确切数量(12)。我findElements()用来找到它们,它返回列表。但是List呢?- int, String?

Selector导致正确的数字价格,但不明白我应该如何以及在哪里使用该 List ?如何将其放入循环中以检查元素是否已排序?

我使用Selenide,但如果你向我提供提示\指南如何做到这Selenium一点就可以了。

谢谢!

0 投票
1 回答
4312 浏览

eclipse - 如何在eclipse中生成诱惑测试报告

我使用“selenide”、“testng”、“maven”、“eclipse”创建了一些自动化脚本。我试图添加诱惑测试结果。我按照 allure-testng-maven 的说明更新了 pom.xml。

对于从 Eclipse 运行测试,我正在对 pom.xml +“运行方式”+“Maven 测试”进行右键单击。这是在“./target/allure-results”文件夹中执行所有 testng 测试并生成 allure xml 文件。

我的疑问是如何查看 eclipse 的魅力报告。

下面是我的 pom.xml 文件。

任何帮助表示赞赏。谢谢!

0 投票
1 回答
613 浏览

java - 使用 Selenium 3.0.0 运行 Selenide?

我的 Firefox 现在是 v 48。这似乎不适用于旧版本的 Selenium。出于这个原因,我不得不将(Gradle)Selenium 依赖项更改为

然后从以下位置获取geckodriver.exe并更改我的 Selenium 测试:

(顺便说一句,我不知道这些 Gecko、Marionette 和 Capabilties 的内容是关于什么的……但上述方法对 Selenium 有效)

但是在清理了依赖缓存之后,改为使用最新版本的 Selenide 3.9.1,后者然后将 Selenium 2.53 放入缓存中,代码如下:

...导致此错误:

原因:org.openqa.selenium.firefox.NotConnectedException:45000 毫秒后无法连接到端口 7055 上的主机 127.0.0.1。Firefox 控制台输出:-app-global","version":"1.0","type":"extension","internalName":null, ...

...也就是说,似乎是因为 Selenium 2.53 无法处理我的 FF 版本。

我也尝试使用 Selenium 3.0.0。与硒化物 3.9.1。这也不起作用,这并不奇怪,因为大概在 Selenide 代码的某个地方它使用了以下行:

有什么建议么?我不想使用旧版本的 FF ......那种技术总是不能令人满意......我想我可能会尝试摆弄相关的 Selenide java 文件并重新编译......但是比我聪明的人在做什么?

0 投票
1 回答
1709 浏览

material-ui - Selenide 测试无法与 Material 的复选框交互

亲爱的stackoverflowers。

我们在项目中使用 Selenide 框架为 UI 编写自动化测试。我们最近切换到 Material-UI,在简单的复选框方面遇到了技术问题。我正在尝试选择复选框。

但是在这样做的同时,我得到了一个例外:

事实上,当我检查它包含的真实 DOM 时opacity: 0

在此处输入图像描述

当我强制设置不透明度时,我的自动化测试运行良好。如何处理?

在此处输入图像描述