java - 未捕获的 DOMException:无法在“节点”上执行“removeChild”:要删除的节点不是该节点的子节点
问题描述
每次打开页面时,我的页面上都会出现一个对话框。我想关闭它,以便我可以继续我的编程。对话框就像这个图像
我尝试了以下代码:
wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("div#psyma_layer_background div#psyma_header div#psyma_close_link_container div#psyma_close_link a#psyma_close_button_link")));
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div#psyma_layer_background div#psyma_header div#psyma_close_link_container div#psyma_close_link a#psyma_close_button_link")));
wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("div#psyma_layer_background div#psyma_header div#psyma_close_link_container div#psyma_close_link a#psyma_close_button_link"))).click();
我做了元素检查,可见性和可点击性检查,这样我就不会错过任何元素,但它无法找出“X”符号,因此没有关闭对话框!如果可以的话,请帮助我,真的很挣扎这个
解决方案
看来你们已经很亲近了。要关闭页面上出现的对话框,您需要单击标记为X的元素,这是一个<a>
标签。因此,要调用click()
所需的元素,您需要等待所需的元素可点击,如下所示:
代码块:
System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get("https://www.landrover.co.uk"); new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.linkText("X"))).click(); System.out.println(driver.getTitle());
控制台输出:
Starting ChromeDriver 2.40.565498 (ea082db3280dd6843ebfb08a625e3eb905c4f5ab) on port 15398 Only local connections are allowed. Jun 18, 2018 2:52:08 PM org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Detected dialect: OSS Premium 4x4 Vehicles & Luxury SUVs - Land Rover UK
浏览器快照:
推荐阅读
- php - 为什么 IIS 忽略 php.ini error_reporting?
- python - 如何在 4D numpy 数组中调整图像大小
- php - PHP - 将每个输入请求传递给变量是否会使其变慢并消耗更多字节?
- hive - 是否可以在 Hive 中将几行合并为一行?
- python - Python文件指向错误的python安装
- ios - 带有 UITableViewController 的 iOS 标签栏应用
- angular - 有没有人有用于 nativescript + angular 的 RadPieChart 示例?
- java - 来自 AdminInitiateAuth 的 ID 令牌对 API 网关调用无效
- ruby-on-rails - 控制台未出现在 Rails 操作视图中
- amazon-web-services - 如何使用 AWS IAM 策略连接 EC2 和 ECR 跨区域?