我有一个包含可重用方法的键类。我尝试用两种方法使用WebElement。他们在一起。我知道失败的是webelement,因为我可以在没有两种方法的情况下对其进行编码,而且效果很好。当调用包含webelement的方法时,如何正确地执行此操作而不会失败?(无此类元素例外)
公开类密钥{
WebElement webElement = null;
public void hoover(String path) throws InterruptedException{
webElement= driver.findElement(By.xpath(path));
Actions act = new Actions(driver);
act.moveToElement(webElement).perform();
Thread.sleep(5000);
}
public void click(String path) throws InterruptedException{
webElement = driver.findElement(By.xpath(path));
webElement.click();//This opens menu list
Thread.sleep(5000);
}
另一个类使用如下内容:
session.navigate("url");
session.hoover("someTab");
Assert.assertTrue(session.isElementPresent("otherSub"), "Element not present");
session.click("otherSub");
org.openqa.selenium.NoSuchElementException: no such element
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:193)
a openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:554)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:307)
at org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:404)
at org.openqa.selenium.By$ByXPath.findElement(By.java:363)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:299)
at com.salesforce.util.Keywords.actionHoover(Keywords.java:101)
at com.salesforce.testcases.SmokeTest.topMenuTest(SmokeTest.java:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
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:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
失踪或失踪。getProperty()
webElement = driver.findElement(By.xpath(OR.getProperty(path)));
webElement.click();//This opens menu list
Thread.sleep(5000);
问题可能是您没有等待元素可见。这可能是因为您在它可用之前(在它加载到页面之前)请求它。Selenium充当用户,因此您需要告诉它等待元素可见,然后获取它,而不是立即获取它
public void clickElementWhenReady(By locator, int timeout) {
WebDriverWait wait = new WebDriverWait(driver, timeout);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(locator));
element.click();
}
您可以实现类似的东西,以便在一段时间内为元素池并在之后抛出错误
不需要模拟随机,所以我可以用我的随机器模拟在一行上完成所有的事情?
并且显示错误 正如您所看到的,当我单击Button时,我想从CurrentWeatherFragment调用一个方法,从ForecastWeatherFragment调用一个方法。
我在vscode中创建了两个简单的Spring Boot Web服务,其中一个Web服务调用另一个,所以我需要同时运行它们,同时调试其中至少一个。如果我独立调试它们,它们都可以工作,例如,如果我右键单击主类并从菜单中选择调试命令。例如,我执行以下顺序: 在调试中启动Service1 通过从浏览器调用URL来测试Service1,并验证它是否有效(确实有效) 在调试中启动Service2 检查Ser
我想要两个对数据发出两个AJAX请求。一个或两个请求可能会失败。在这种情况下,我仍然希望与来自两个请求(或成功请求)的数据进行交互。 如果我做了这样的事情: 函数只有在两个请求都成功时才会被调用,因此如果其中一个请求失败,我就无法从成功的请求中获取任何数据。如果我使用failCallback,或者使用always方法,如下所示: failCallback和always callback只报告失败请
问题内容: 在Bruce Eckel的“ Thinking In Java,第四版”的第428页(有关类型信息的章节)中,具有以下示例: 也许我有点累,但是我看不到add()方法中对add()的调用是如何工作的。我一直认为它应该有一个引用,或者是一个静态方法(并且我在ArrayList或List中找不到静态add())。我想念什么? 我只是为自己测试,发现这可行: 问题答案: Java为这样的方法
本文向大家介绍golang两种调用rpc的方法,包括了golang两种调用rpc的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了golang两种调用rpc的方法。分享给大家供大家参考,具体如下: golang的rpc有两种方法进行调用,一种是rpc例子中给的: 另一种是使用NewServer 这种是当rpc已经注册的时候就要使用了另外一种了。即一个server只能在DefaultRP