Java 无法从框架返回webdriver主页并单击按钮。它显示错误元素ClickIntercepted
下面是我正在执行的代码,登录到页面后,我试图单击左侧垂直导航栏上的“存款”按钮。但在“存款”按钮前,一个视频广告显示在一个框架内。在我的程序中,我试图从框架中关闭广告并返回主页,这样编译器就可以看到“存款”按钮,然后我只需单击“存款”按钮。下面是我正在尝试的程序 有人能帮我看看如何点击“存款”按钮吗Java 无法从框架返回webdriver主页并单击按钮。它显示错误元素ClickIntercepted,java,eclipse,selenium,webdriver,Java,Eclipse,Selenium,Webdriver,下面是我正在执行的代码,登录到页面后,我试图单击左侧垂直导航栏上的“存款”按钮。但在“存款”按钮前,一个视频广告显示在一个框架内。在我的程序中,我试图从框架中关闭广告并返回主页,这样编译器就可以看到“存款”按钮,然后我只需单击“存款”按钮。下面是我正在尝试的程序 有人能帮我看看如何点击“存款”按钮吗 package SeleniumSessions; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; im
package SeleniumSessions;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class TestGuru99PopUp {
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver","F:\\Drivers\\chromedriver_win32\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
//alert.dismiss();// this is used to cancel the alert
driver.manage().window().maximize();
driver.manage().deleteAllCookies();
driver.manage().timeouts().pageLoadTimeout(40, TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get("http://demo.guru99.com/V4/");
driver.findElement(By.xpath("//input[@name = 'uid']")).sendKeys("username");
driver.findElement(By.xpath("//input[@name = 'password']")).sendKeys("password");
driver.findElement(By.xpath("//input[@name = 'btnLogin']")).click();
Thread.sleep(5000);
/*JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("window.scrollBy(0,250)");*/
//driver.switchTo().frame("flow_close_btn_iframe");
driver.switchTo().frame(driver.findElement(By.cssSelector("iframe[title='Flow Close Button']")));
Boolean frameClose = driver.findElement(By.xpath("//div[@id = 'closeBtn']")).isDisplayed();
System.out.println(frameClose);
driver.findElement(By.xpath("//div[@id = 'closeBtn']")).click();
driver.switchTo().defaultContent();
//Thread.sleep(1000);
driver.findElement(By.xpath("//a[contains(text(),'Deposit')]")).click();
System.out.println("program reached end successfully");
driver.quit();
// TODO Auto-generated method stub
// TODO Auto-generated method stub
}
}
****下面是我在控制台中遇到的错误****
Starting ChromeDriver 80.0.3987.106 (f68069574609230cf9b635cd784cfb1bf81bb53a-refs/branch-heads/3987@{#882}) on port 32445
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
[1587964475.823][WARNING]: This version of ChromeDriver has not been tested with Chrome version 81.
[1587964477.868][WARNING]: Timed out connecting to Chrome, retrying...
Apr 27, 2020 10:44:40 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
[1587964482.639][WARNING]: Timed out connecting to Chrome, retrying...
[1587964486.584][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964486.691][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964486.799][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964486.912][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964487.017][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964487.168][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964487.271][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964487.375][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964487.559][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964487.664][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964487.767][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964487.964][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964488.073][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964489.291][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964489.673][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964489.784][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964489.900][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964490.065][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964490.168][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964490.397][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964490.535][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964490.638][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964493.468][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964494.149][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964494.487][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964494.590][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964494.696][SEVERE]: Timed out receiving message from renderer: 0.100
[1587964494.799][SEVERE]: Timed out receiving message from renderer: 0.100
true
Exception in thread "main" org.openqa.selenium.ElementClickInterceptedException: element click intercepted: Element <a href="...Input.php">Deposit</a> is not clickable at point (120, 569). Other element would receive the click: <div id="primis_container_div">...</div>
(Session info: chrome=81.0.4044.122)
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:48'
System info: host: 'DESKTOP-1QASA0A', ip: '192.168.1.129', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '14'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 81.0.4044.122, chrome: {chromedriverVersion: 80.0.3987.106 (f68069574609..., userDataDir: C:\Users\Ravindra\AppData\L...}, goog:chromeOptions: {debuggerAddress: localhost:55201}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: WINDOWS, platformName: WINDOWS, proxy: Proxy(), setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify}
Session ID: d2ff228f926b8de0b294c01581896a4f
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:285)
at org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:84)
at SeleniumSessions.TestGuru99PopUp.main(TestGuru99PopUp.java:45)
端口32445上的启动ChromeDriver 80.0.3987.106(f68069574609230cf9b635cd784cfb1bf81bb53a参考/分支头/3987{882})
只允许本地连接。
请保护ChromeDriver和相关测试框架使用的端口,以防止恶意代码访问。
[1587964475.823][警告]:此版本的ChromeDriver尚未使用Chrome版本81进行测试。
[1587964477.868][警告]:连接到Chrome时超时,正在重试。。。
2020年4月27日上午10:44:40 org.openqa.selenium.remote.ProtocolHandshake createSession
信息:检测到的方言:W3C
[1587964482.639][警告]:连接到Chrome时超时,正在重试。。。
[1587964486.584][严重]:从渲染器接收消息时超时:0.100
[1587964486.691][严重]:从渲染器接收消息时超时:0.100
[1587964486.799][严重]:从渲染器接收消息时超时:0.100
[1587964486.912][严重]:从渲染器接收消息时超时:0.100
[1587964487.017][严重]:从渲染器接收消息时超时:0.100
[1587964487.168][严重]:从渲染器接收消息时超时:0.100
[1587964487.271][严重]:从渲染器接收消息时超时:0.100
[1587964487.375][严重]:从渲染器接收消息时超时:0.100
[1587964487.559][严重]:从渲染器接收消息时超时:0.100
[1587964487.664][严重]:从渲染器接收消息时超时:0.100
[1587964487.767][严重]:从渲染器接收消息时超时:0.100
[1587964487.964][严重]:从渲染器接收消息时超时:0.100
[1587964488.073][严重]:从渲染器接收消息时超时:0.100
[1587964489.291][严重]:从渲染器接收消息时超时:0.100
[1587964489.673][严重]:从渲染器接收消息时超时:0.100
[1587964489.784][严重]:从渲染器接收消息时超时:0.100
[1587964489.900][严重]:从渲染器接收消息时超时:0.100
[1587964490.065][严重]:从渲染器接收消息时超时:0.100
[1587964490.168][严重]:从渲染器接收消息时超时:0.100
[1587964490.397][严重]:从渲染器接收消息时超时:0.100
[1587964490.535][严重]:从渲染器接收消息时超时:0.100
[1587964490.638][严重]:从渲染器接收消息时超时:0.100
[1587964493.468][严重]:从渲染器接收消息时超时:0.100
[1587964494.149][严重]:从呈现程序接收消息时超时:0.100
[1587964494.487][严重]:从渲染器接收消息时超时:0.100
[1587964494.590][严重]:从渲染器接收消息时超时:0.100
[1587964494.696][严重]:从渲染器接收消息时超时:0.100
[1587964494.799][严重]:从渲染器接收消息时超时:0.100
真的
线程“main”org.openqa.selenium.element中的异常ClickInterceptedException:元素ClickIntercepted:元素在点(120569)处不可单击。其他元素将收到单击:。。。
(会话信息:chrome=81.0.4044.122)
构建信息:版本:“3.141.59”,修订版:“e82be7d358”,时间:“2018-11-14T08:25:48”
系统信息:主机:'DESKTOP-1QASA0A',ip:'192.168.1.129',os.name:'Windows 10',os.arch:'amd64',os.version:'10.0',java.version:'14'
驱动程序信息:org.openqa.selenium.chrome.ChromeDriver
功能{AcceptSecureCerts:false,browserName:chrome,browserVersion:81.0.4044.122,chrome:{chromedriverVersion:80.0.3987.106(f68069574609…,userDataDir:C:\Users\Ravindra\AppData\L…),goog:chromeOptions:{debuggerAddress:localhost:55201},javascriptEnabled:true,networkConnectionEnabled:false,pageLoadStrategy:normal,platform:WINDOWS,platformName:WINDOWS,proxy:proxy(),setWindowRect:true,StrictFileInteractivity:false,超时:{隐式:0,pageLoad:300000,脚本:30000},未经处理的PromptBehavior:Disease and notify}
会话ID:d2ff228f926b8de0b294c01581896a4f
位于java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
位于java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
位于java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
位于org.openqa.selenium.remote.http.w3chttprosecodec.createException(w3chttprosecodec.java:187)
在org.openqa.selenium.remote.http.w3chttrpresponsecodec.decode(w3chttrpresponsecodec.java:122)
位于org.openqa.selenium.remote.http.w3chttprosecodec.decode(w3chttprosecodec.java:49)
位于org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
位于org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
位于org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
位于org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:285)
在org.openqa.selenium.remote.RemoteWebElement.click上(RemoteWebElement.java:84)
位于SeleniumSessions.TestGuru99PopUp.main(TestGuru99PopUp.java:45)
下面是两个iframe标签(一个用于视频cl)
WebElement depositElement = driver.findElement(By.xpath("//a[contains(text(),'Deposit')]"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", depositElement);
new WebDriverWait(driver, 5).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@id = 'closeBtn']"))).click();
driver.switchTo().defaultContent();