【问题标题】:How to FIND and CLICK the elements in Inspect Element using Selenium如何使用 Selenium 查找和单击 Inspect Element 中的元素
【发布时间】:2017-05-27 13:03:23
【问题描述】:

我设法浏览了这些网站,但我登陆了一个具有 Javascript 和 Ajax 的网站。 View Source 和 Inspect Element 中的代码不一样

使用 Selenium,我可以点击查看源代码代码中的元素。

我当前的代码是这样的:

driver.FindElement(By.Id("libraryTab_ManagementPackagesTable_productNameGroup_appdynamics")).Click();

但应用程序崩溃,因为元素在检查元素代码中,而不是在查看源代码中。

【问题讨论】:

  • 查看源是来自服务器的原始html。检查元素是当前存在的,因此在查找不在检查元素中的 id 时遇到元素未找到错误是有道理的。我的建议是尝试在浏览器的调试器中使用 jquery 选择元素。如果可以,则将该选择器传递给 selenium 的 cssselector。
  • 它可能是由动作创建的动态元素,因此您需要执行该动作。

标签: javascript c# selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

如果您的元素不在初始页面源中,而是动态创建的,您可能需要使用ExplicitWait。试试下面的代码:

WebDriverWait wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(15));
IWebElement element = wait.Until(ExpectedConditions.ElementToBeClickable(By.Id("libraryTab_ManagementPackagesTable_productNameGroup_appdynamics")));
element.Click();

使用上面的代码,您应该能够等待(不超过 15 秒)直到元素生成并且它是可点击的。否则,你会得到TimeOutException。您可以增加或减少超时。

【讨论】:

    猜你喜欢
    • 2015-11-18
    • 2021-03-28
    • 2019-10-01
    • 2014-12-06
    • 2023-03-15
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 2020-02-12
    相关资源
    最近更新 更多