[英]issue with clicking shadow dom anchor tag using selenium and java
我正在學習 selenium。 我試圖在 developer.salesforce.com 網站中自動點擊超鏈接。 我編寫了以下代碼,當我執行代碼時,我在 shadowContent.click() function 中得到 JavascriptException 說無法讀取未定義的屬性(讀取'defaultView')元素:[[org.openqa.selenium.remote.ShadowRoot@327] > css 選擇器:.button.variant_primary.size-hero.font-display.icon-right]
ChromeDriver driver = new ChromeDriver();
driver.get("https://developer.salesforce.com");
WebElement shadowHost = driver.findElement(By.xpath("//dx-button[@href='/get-started']"));
SearchContext shadowRoot = shadowHost.getShadowRoot();
WebElement shadowContent = shadowRoot.findElement(By.cssSelector(".button.variant_primary.size-hero.font-display.icon-right"));
shadowContent.click();
如果你想點擊開始按鈕,你可以嘗試如下:
首先嘗試如下:
driver.findElement(By.xpath("//dx-button[@href='/get-started']")).click();
如果您遇到相同的錯誤,請與我們分享錯誤。
或者您可以嘗試以下方法:
driver.manage().window().maximize();
JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement getStartedButton = (WebElement) js.executeScript("return document.querySelector('#maincontent > div > div > div > dx-button').shadowRoot.querySelector('a')");
// now you can click on get Started Button ...
getStartedButton.click();
嘗試這個:
我試過了,它工作正常。
JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement rootEle = driver.findElement(By.xpath("//dx-button[@href='/get-started']"));
// SearchContext expandedRooEle = (SearchContext) js.executeScript("return arguments[0].shadowRoot", rootEle);
// (Or)
SearchContext expandedRooEle = rootEle.getShadowRoot();
WebElement button = expandedRooEle.findElement(By.cssSelector(".button.variant_primary.size-hero.font-display.icon-right"));
js.executeScript("arguments[0].click();", button);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.