【问题标题】:Get DOCUMENT from another DOCUMENT with JSExecutor使用 JSExecutor 从另一个文档中获取文档
【发布时间】:2021-08-14 17:33:01
【问题描述】:

我正在尝试从页面中获取一个元素并单击它。但我遇到了#document 标签。 我解决这个问题的最后一步:

var doc = (OpenQA.Selenium.Remote.RemoteWebElement)_driver.ExecuteQuery("return window.document");
doc.FindElementByXPath("//span[text()='Принять']").Click();

但答案是:

OpenQA.Selenium.NoSuchElementException: "no such element: Unable to locate element:

{"method":"xpath","selector":"//span[text()='Принять']"} (会话信息: chrome=80.0.3987.132)"

如果我尝试在浏览器中执行此操作 - 一切正常。只有一场比赛。

请帮忙

【问题讨论】:

  • 如果此跨度在 div 标签内,请尝试点击 div 标签。 Xpath 应该是这样的 //span[text() ='Принять']//ancestor::div[unique id here]
  • @itronic1990 这没有帮助。我试过: //button[./span[text()='Принять']] 和其他 XPaths
  • 我有像 <!DOCTYPE>/body//iframe/#document/<!DOCTYPE>/body//span[text()='Принять'] 这样的 HTML 我不确定。这意味着我在另一个文档中有文档?
  • 请分享网址或HTML。
  • 有一个iframe,你应该切换到iframe,然后点击span

标签: javascript c# html selenium xpath


【解决方案1】:

找路!感谢@itronic1990。

    Driver.SwitchTo().Frame(0);
    var doc = (OpenQA.Selenium.Remote.RemoteWebElement)_driver.ExecuteQuery(
        "return document");
    doc.FindElementByXPath("//button[./span[text()='Принять']]").Click();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-30
    • 2018-06-16
    • 1970-01-01
    • 2012-12-01
    • 2011-09-01
    • 1970-01-01
    • 2019-03-17
    相关资源
    最近更新 更多