英文:
Unable to Find the Xpath for Google Home Page textarea or Input
问题
无法找到 Google 主页搜索框的 XPath。
- 打开 Chrome 浏览器。
- 检查 Chrome 浏览器上默认的 Google 搜索框
参考图像
参考图像,我们需要编写 Google 文本区域或搜索框的 XPath
driver.findElement(By.Xpath(//input[@id='input'])).sendkeys("testing");
一旦在搜索区域中输入文本,Google 将基于文本提供建议,我们需要在控制台打印建议的文本。
我尝试了多种方法来找到 XPath,但匹配元素未显示,即使元素存在于网页上。
By.Id('input');
By.Xpath("//input[@id='input']");
By.cssSelector("input#input");
By.Xpath("/html/body/ntp-app//div/div[1]/ntp-realbox//div/inputb");
但是元素未找到。
英文:
Unable to find the XPath for google home page - Search box.
- Open the Chrome Browser
- Inspect the default Google Search box on chrome browser
Reference Image
Refer the image, we have to write the Xpath for Google textarea or search box
driver.findElement(By.Xpath(//input[@id='input'])).sendkeys("testing");
Once we type the text in the search area, google will provide the suggestion based on text, we have to print the console suggested text.
I tried multiple ways to find the XPath but Match element not showing even element presence on webpage.
By.Id('input');
By.Xpath("//input[@id='input']");
By.cssSelector("input#input");
By.Xpath("/html/body/ntp-app//div/div[1]/ntp-realbox//div/inputb");
But Element not finding.
答案1
得分: 0
无法获取它,因为元素位于影子根中,而影子根又位于影子根中。
以下是用Java编写的示例代码,用于访问您的输入:
// 查找影子根元素
WebElement shadowRoot = driver.findElement(By.tagName("ntp-app"));
JavascriptExecutor js = (JavascriptExecutor) driver;
// 在影子根内部查找目标元素
WebElement insideShadowInput = (WebElement) js.executeScript("return arguments[0].shadowRoot.querySelector('ntp-realbox').shadowRoot.querySelector('#input');", shadowRoot);
// 向内部的影子根输入文本
insideShadowInput.sendKeys("testing");
英文:
You can't get it, because element is placed in shadow-root, which is placed in shadow-root.
Example of code in Java that reaches your input
<!-- begin snippet: js hide: false console: true babel: false -->
<!-- language: lang-js -->
WebElement shadowRoot = driver.findElement(new By.ByTagName("ntp-app")); ;
JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement insideShadowInput = (WebElement) js.executeScript("return arguments[0].shadowRoot.querySelector('ntp-realbox').shadowRoot.querySelector('#input');", shadowRoot);
insideShadowInput.sendKeys("testing");
<!-- end snippet -->
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论