无法找到Google首页文本框或输入框的XPath。

huangapple go评论80阅读模式
英文:

Unable to Find the Xpath for Google Home Page textarea or Input

问题

无法找到 Google 主页搜索框的 XPath。

  1. 打开 Chrome 浏览器。
  2. 检查 Chrome 浏览器上默认的 Google 搜索框
    参考图像

参考图像,我们需要编写 Google 文本区域或搜索框的 XPath

driver.findElement(By.Xpath(//input[@id='input'])).sendkeys("testing");

一旦在搜索区域中输入文本,Google 将基于文本提供建议,我们需要在控制台打印建议的文本。

我尝试了多种方法来找到 XPath,但匹配元素未显示,即使元素存在于网页上。

  1. By.Id('input');
  2. By.Xpath("//input[@id='input']");
  3. By.cssSelector("input#input");
  4. By.Xpath("/html/body/ntp-app//div/div[1]/ntp-realbox//div/inputb");

但是元素未找到。

英文:

Unable to find the XPath for google home page - Search box.

  1. Open the Chrome Browser
  2. 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.

  1. By.Id('input');
  2. By.Xpath("//input[@id='input']");
  3. By.cssSelector("input#input");
  4. 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.

Reference

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(&quot;ntp-app&quot;)); ;
JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement insideShadowInput = (WebElement) js.executeScript(&quot;return arguments[0].shadowRoot.querySelector(&#39;ntp-realbox&#39;).shadowRoot.querySelector(&#39;#input&#39;);&quot;, shadowRoot);
insideShadowInput.sendKeys(&quot;testing&quot;);

<!-- end snippet -->

huangapple
  • 本文由 发表于 2023年7月17日 12:01:12
  • 转载请务必保留本文链接:https://go.coder-hub.com/76701410.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定