- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一系列 Selenium 测试,这些测试是使用 Internet Explorer 中的 Selenium Grid 远程运行的。测试工作正常,直到到达此行:
WebElement cart = driver.findElement(By.id("cartId");
List<WebElement> rows = cart.findElements(By.tagName("tr")); <----- fails here.
使用 Chrome 在本地运行时,代码可以完美运行,并且远程 IE 测试中有几个步骤会在该步骤之前运行。如果我替换 table
与 driver' (to see if the issue is somehow
查找元素) the tests pass (at that point). There are certainly
表中的 tr` 元素和堆栈跟踪没有给我很好的方法来弄清楚发生了什么(我在下面列出)。任何帮助将不胜感激。
[TestNG] Running:
/Users/kroe761/Documents/workspace/ecom/testng.xml
Feb 28, 2017 2:13:01 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
Feb 28, 2017 2:13:04 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
FAILED: MyTest
org.openqa.selenium.WebDriverException: org/openqa/selenium/remote/server/handler/FindChildElements$1
Command duration or timeout: 80 milliseconds
Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:49:13 -0700'
System info: host: 'kroe761-MacBook-Pro.local', ip: '10.11.25.155', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.3', java.version: '1.8.0_121'
Driver info: org.openqa.selenium.remote.RemoteWebDriver
Capabilities [{browserAttachTimeout=0, ie.enableFullPageScreenshot=true, enablePersistentHover=false, ie.forceCreateProcessApi=false, ie.forceShellWindowsApi=false, pageLoadStrategy=normal, ignoreZoomSetting=false, ie.fileUploadDialogTimeout=3000, version=11, platform=WINDOWS, nativeEvents=true, ie.ensureCleanSession=false, elementScrollBehavior=0, ie.browserCommandLineSwitches=, webdriver.remote.sessionid=0a293271-4edc-428e-b845-1b5ed71c0f1d, requireWindowFocus=false, browserName=internet explorer, initialBrowserUrl=http://localhost:4747/, takesScreenshot=true, javascriptEnabled=true, ignoreProtectedModeSettings=false, enableElementCacheCleanup=true, cssSelectorsEnabled=true, unexpectedAlertBehaviour=dismiss}]
Session ID: 0a293271-4edc-428e-b845-1b5ed71c0f1d
*** Element info: {Using=tag name, value=tr}
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:216)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:635)
at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:274)
at org.openqa.selenium.remote.RemoteWebElement.findElements(RemoteWebElement.java:193)
at org.openqa.selenium.remote.RemoteWebElement.findElementsByTagName(RemoteWebElement.java:270)
at org.openqa.selenium.By$ByTagName.findElements(By.java:327)
at org.openqa.selenium.remote.RemoteWebElement.findElements(RemoteWebElement.java:169)
at com.company.automation.ecom.pages.checkout.Cart.getCartItemRows(Cart.java:56)
at com.company.automation.ecom.pages.checkout.Cart.getNumOfRowsInCart(Cart.java:74)
at com.company.automation.ecom.tests.checkout.CheckoutHelper.comparePricesOnCart(CheckoutHelper.java:59)
at com.company.automation.ecom.tests.checkout.CheckoutCreditCard.CreditCard(CheckoutCreditCard.java:102)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
at org.testng.SuiteRunner.run(SuiteRunner.java:240)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1123)
at org.testng.TestNG.run(TestNG.java:1031)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:236)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:81)
Caused by: java.lang.NoClassDefFoundError: org/openqa/selenium/remote/server/handler/FindChildElements$1
at org.openqa.selenium.remote.server.handler.FindChildElements.call(FindChildElements.java:50)
at org.openqa.selenium.remote.server.handler.FindChildElements.call(FindChildElements.java:35)
at java.util.concurrent.FutureTask.run(Unknown Source)
at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:176)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
===============================================
Internet Explorer
Tests run: 1, Failures: 1, Skips: 0
===============================================
===============================================
ECOM Suite
Total tests run: 1, Failures: 1, Skips: 0
===============================================
[TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 7 ms
[TestNG] Time taken by org.testng.reporters.JUnitReportReporter@22f71333: 5 ms
[TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@7e0ea639: 11 ms
[TestNG] Time taken by org.testng.reporters.XMLReporter@7f690630: 12 ms
[TestNG] Time taken by org.testng.reporters.jq.Main@71be98f5: 34 ms
[TestNG] Time taken by org.testng.reporters.EmailableReporter@6108b2d7: 4 ms
最佳答案
根据您的日志,这与 Internet Explorer 驱动程序或表元素无关,您在远程计算机上执行此测试时存在类路径问题。您在 FindChildElements
类上收到 NoClassDefFoundError
。
我不知道你的构建过程和项目结构是什么样的,但请参阅 here了解如何解决此类问题的更多详细信息。
关于java - table.findElements(By.tagName ("td") 在 RemoteWebDriver/Internet Explorer 中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42518142/
有一种方法可以将本地配置文件传递给远程驱动程序: FirefoxProfile p = new FirefoxProfile(); DesiredCapabilities capabi
运行测试时不使用 RemoteWebDriver,仅使用 IWebdriver driver = new FireFoxDriver(); 我可以很好地运行我的测试,查找元素,使用 XPath 表达式
当通过 selenium 网格运行时,我需要 chrome 来启动最大化。 这是我现在初始化它的方法: Selenium selenium = new DefaultSelenium("localho
我有自己的 Selenium 网格和不同的 Windows 机器。其中之一是 Windows 10 机器。 Chrome 和 Firefox 可以工作,但我无法让 Edge 运行。 我的异常(exce
我正在尝试开发一套类(class)来每晚测试我的网站功能,我在 Chrome、Firefox、Edge 和 IE 中执行此操作。因为有时 Selenium 找不到我需要的元素,例如在给出错误之前截取浏
我正在尝试通过以下代码使用 RemoteWebDriver 启动 chrome 浏览器。 File file = new File("E:\\S\\chromedriver.exe"); //path
我正在使用 RemoteWebDriver 并尝试在 Internet Explorer 下的远程计算机上执行一些 UI 测试: RemoteWebDriver driver = new Remote
我试图在 Sauce On Demand 基础设施上运行基于 Sikuli WebDriver 的测试。但我对 RemoteWebDriver 有疑问。 我有这个 BaseSikuliWebDrive
这里我创建了一个集线器和一个节点,我想创建另一个节点。 如何使用多个节点初始化我的 RemoteWebdriver。 public void setUp() throws MalformedURLEx
我正在尝试使用 Selenium 网格设置来自动化 Chrome、Ie、Edge 和 Firefox。Hub 设置在我的 Selenium 测试无法访问的另一台机器上。 我的一些测试需要更改浏览器的首
有没有办法获得带标题的 Selenium 屏幕截图?我已经尝试过下面的代码,但屏幕截图没有标题。我有一个测试用例,需要单击链接并确保该操作必须进入新选项卡,因此作为证据,我必须附加捕获有两个选项卡。
如何从公司代理后面通过 RemoteWebDriver 连接到 Selenium 网格,例如 BrowserStack? 被测应用程序在代理之外,可从 BrowserStack 自由访问。 这Usin
我正在使用 Selenium 并进行测试,这些测试会随机选择它们运行的浏览器。 我有一些测试与国际化相关的功能,所以我需要让浏览器指定浏览器语言。 我最好的猜测是我需要使用 SetCapabili
RemoteWebDriver 是 Selenium 2.0 中 DefaultSelenium 的替代品还是可以将两者结合使用? 最佳答案 RemoteWebDriver 只是用于连接到远程 sel
当我尝试使用 var element = webdriver.FindElementByXPath("/"); 或者 var elements = webdriver.FindElementsByXP
查看RemoteWebDriver的源代码,每个操作,包括获取刚刚获得的WebElement的文本,都需要向浏览器发送一个单独的命令。我担心在高度动态的 Javascript Web 应用程序中,这可
我实际上找不到一个很好的解释来解释 RemoteWebDriver 和 Selenium 中的 WebDriver 之间的区别。 下面是 eclipse 告诉我将 WebDriver 转换为 Remo
我正在尝试将 RemoteWebDriver 与 google.com 上的 xpath 定位器一起使用,这是来自运行 firefox 的节点的日志。它接收所有这些命令但不执行它们。除了打开 Goog
当我使用 HtmlUnitDriver 时,我可以设置自己的 browserVersion,如下所示: private HtmlUnitDriver initDriver() { Browse
如果我使用网络驱动程序,那么它可以完美运行 driver = new PhantomJSDriver(capabilities); driver.executePhantomJS( "var page
我是一名优秀的程序员,十分优秀!