我有元素的HTML:
<li class="cabinet-module-holder cabinet-module-w4" ng-repeat="module in $ctrl.cabinetRow.modules track by module.id" dnd-draggable="module" dnd-effect-allowed="move" dnd-moved="$ctrl.removeModule($index, 1)" dnd-type="'0a2e00b3-8f89-4d17-a0c8-d37876043316'" dnd-dragstart="$ctrl.moduleDragStart({ cabinetModuleId: module.id })" dnd-disable-if="false" draggable="true">
我在Visual Studio中使用Webdriver框架来移动轨道/行上的元素。我想要判断这个元素是否正常。当元件较大时,柜子模块是w6,当它是小元件是w2时。 w4是每个元素的中等大小。
现在我有简短的C#代码:
string searchText = "0a2e00b3-8f89-4d17-a0c8-d37876043316";
IList<IWebElement> rows = driver.FindElements(By.XPath("//*[@class='cabinet-body']"));
foreach (IWebElement row in rows)
{
if (row.Text.Contains(searchText))
{
SelectElement select = new SelectElement(row.FindElement(By.XPath("//*[@class='cabinet-module-holder cabinet-module-w6']")));
break;
}
}
在日志输出窗口中,我有空位。为此,我使用函数logger.Write();
我想验证元素 - 它应该在正确的轨道上,但id是动态的,并且在新的浏览器或刷新后发生变化。
答案 0 :(得分:0)
这是我在处理动态元素时多次使用过的东西。除了w2
,w4
或w6
之外,听起来id或多或少相同。以下链接教会了我如何制作高级css选择器,我用它来处理动态元素。
https://www.smashingmagazine.com/2009/08/taming-advanced-css-selectors/
对于你的给定元素,你可以用很多方式写
li[class^='cabinet-module-holder cabinet-module']
答案 1 :(得分:0)
使用xpath
//*[contains(@class,'w4')]