【问题标题】:Still Can't Retrieve Element by Xpath/Text in Selenium Webdriverjs仍然无法通过 Selenium Webdriverjs 中的 Xpath/Text 检索元素
【发布时间】:2015-03-28 07:11:50
【问题描述】:

我发现了一些其他问题需要解决,但我又回到了昨天的位置。我需要找到一种方法来仅使用文本来获取这些元素。最终,一切都将被重写以使用 id。

当我检查 FirePath 中的元素时,这就是我所看到的。很丑,而且这是一个动态页面,所以不能保证这个列表中元素的绝对位置。

.//*[@id='v-Portlet_CCEditorApplicationportlet_WAR_Portlet_CCEditor_INSTANCE_n6EMyzyYmNu2_LAYOUT_22823']/div/div[2]/div/div[3]/div/div/div/div[1]/div/div/div/div /div[1]/div[2]/div/div[2]/div[1]/table/tbody/tr[3]/td[1]/div

我有一个名为 MyTest 的文档。我正在尝试查看它是否存在:

driver.isElementPresent(By.xpath("//div[contains(.,'MyTest')]")).then(function(foundit)
{
    if (foundit)
    {
        console.log('You forgot to delete your old document');
        driver.quit();
    }
    else
    {
        console.log('Document Not there')
        driver.quit;
    }
});

也试过了:

//div[contains(text(),'MyTest')

它似乎不在 iframe 中。我已经尝试切换到 iframe 0 和 1。

【问题讨论】:

  • 试过了,还是找不到。
  • 你需要知道 id 是如何生成的。我认为 //*[contains(@id, 'CCEditorApplicationportlet')]//div[contains(.,'MyTest')] 会起作用,但你最好在这里发布 5-10 个动态 ID,这样我们就可以有一个更好的 xpath建议。
  • 如果你能给出页面的链接或者在这里提供完整的HTML会更好。
  • 我很乐意这样做,不幸的是,这个应用程序现在不能,也永远不会在互联网上可用,并且页面已生成,并且是 125,000 个字符 - 我在这里限制为 30,000 .
  • 压缩文件并将其保存到 Dropbox。这是链接:dropbox.com/s/8k6322h6cpqqzu3/problem_page.html.zip?dl=0

标签: node.js selenium selenium-webdriver


【解决方案1】:

精氨酸。正在使用 driver.wait,直到。他们没有工作。页面正在等待。最后使用drive.sleep。有效。我不明白,但我现在可以继续了。

【讨论】:

    猜你喜欢
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-05
    相关资源
    最近更新 更多