【发布时间】: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