问题
我有一个应用程序,允许用户添加备忘录到网页。我需要能够找到所有的备忘录,并删除他们的网页。问题是,我永远无法确定页面上会有多少备忘录以及它的ID是什么。每个“备忘录”都有一个唯一的ID,这取决于页面上有多少备忘录。例如,如果页面上有三个备忘录,那么我将有三个ID为"memo01,memo02,memo03“的备忘录。
我现在所做的只是搜索5个备忘录(我假设不会超过5个),所以我通过ID搜索包含"memo01,memo02,memo03“最多5的元素。然后依次删除它们--这很有效。我知道这不是理想的,也不是特别有效的,尤其是现在,当我有一个案例,我在页面上有10条注释
理想解:
我想出的是找到所有包含“注意事项”的ID,如下所示:
driver.Findelements(By.XPath("//*[contains(@id, 'note')]"));我不想找一张特别的便条。我只需要找到它们并删除它们。问题是,上面的xpath定位器还得到了我不感兴趣的其他元素的句柄。也就是说,它们在DOM中,但没有显示在页面上。
我需要的是循环所有包含"x“的元素,这些元素实际上是显示在页面上的(.displayed)。有什么想法吗?
发布于 2016-04-18 09:49:39
我想你想要这样的东西:
// The selector insid CssSelector is to find all input's ID that contains "memo"
ICollection<IWebElement> listMemo = driver.FindElements(By.CssSelector("input[id*='memo']"));
foreach (var item in listMemo)
{
item.Displayed = false;
}https://stackoverflow.com/questions/35652376
复制相似问题