我正在使用 Selenium WebDriver 和 Selendroid 在 Android 模拟器中进行自动化测试,我遇到了一个如下所述的问题:-
在我的应用程序中,我有一个选择元素,其中包含将网页更改为另一个页面的选项,这里 Selenium WebDriver 在选择它时抛出异常。
示例页面:
<html>
<head>
<title>Select test</title>
</head>
<body>
<select name="sel" onchange="if(this.selectedIndex==1) location.replace('another.html')">
<option value="opt1">Option 1</option>
<option value="opt2">Option 2</option>
<option value="opt3">Option 3</option>
</select>
下面是我从下拉框中选择值的代码:
Select dropdownbox = new Select(driver.findElement(By.xpath(locator));
dropdownbox.selectByIndex(index); ---> I am getting Exception at this point. Below is the complete Exception details:-
org.openqa.selenium.StaleElementReferenceException:{“消息”:“缓存中不存在元素”} io.selendroid.exceptions.StaleElementReferenceException:{“消息”:“缓存中不存在元素”} 在 io.selendroid.server.model.SelendroidWebDriver.executeAtom(SelendroidWebDriver.java:195) 在 io.selendroid.server.model.SelendroidWebDriver.executeAtom(SelendroidWebDriver.java:167) 在 io.selendroid.server.model.AndroidWebElement.getLocation (AndroidWebElement.java:183) 在 io.selendroid.server.model.AndroidWebElement.getCenterCoordinates(AndroidWebElement.java:216) 在 io.selendroid.server.model.AndroidWebElement.click(AndroidWebElement.java:249) 在 io.selendroid。 server.handler.ClickElement.handle(ClickElement.java:43) at io.selendroid.server.AndroidServlet.handleRequest(AndroidServlet.java:236) at io.selendroid.server.BaseServlet.handleHttpRequest(BaseServlet.java:70) at org .webbitserver.netty.NettyHttpControl.nextHandler(NettyHttpControl.java:78) 在 org.webbitserver.netty.NettyHttpControl。nextHandler(NettyHttpControl.java:62) at io.selendroid.server.inspector.InspectorServlet.handleHttpRequest(InspectorServlet.java:78) at org.webbitserver.netty.NettyHttpControl.nextHandler(NettyHttpControl.java:78) at org.webbitserver.netty .NettyHttpControl.nextHandler(NettyHttpControl.java:62) 位于 org.webbitserver.netty.NettyHttpControl.nextHandler(NettyHttpControl.java:78) 的 org.webbitserver.handler.PathMatchHandler.handleHttpRequest(PathMatchHandler.java:33)。 netty.NettyHttpControl.nextHandler(NettyHttpControl.java:62) 在 org.webbitserver.handler.DateHeaderHandler.handleHttpRequest(DateHeaderHandler.java:21) 在 org.webbitserver.netty.NettyHttpControl.nextHandler(NettyHttpControl.java:78) 在 org.webbitserver org.webbitserver 上的 .netty.NettyHttpControl.nextHandler(NettyHttpControl.java:62)。handler.ServerHeaderHandler.handleHttpRequest(ServerHeaderHandler.java:25) at org.webbitserver.netty.NettyHttpControl.nextHandler(NettyHttpControl.java:78) at org.webbitserver.netty.NettyHttpControl.nextHandler(NettyHttpControl.java:67) at org.webbitserver .netty.NettyHttpChannelHandler$2.run(NettyHttpChannelHandler.java:72) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)在 java.lang.Thread.run(Thread.java:856)在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 在 java.lang.Thread 的 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 运行 (NettyHttpChannelHandler.java:72) .run(Thread.java:856)在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 在 java.lang.Thread 的 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 运行 (NettyHttpChannelHandler.java:72) .run(Thread.java:856)
谁能帮我解决这个问题?
提前致谢!!