c# - XPath:有没有办法选择动态添加的兄弟的子元素
问题描述
我需要触摸兄弟元素的子元素:'input':“ng-form”,它是在前一个兄弟的子元素:“input”被触摸时动态创建的
我想根据我需要的字符串数组数据选择并触摸兄弟的输入元素。因为兄弟姐妹被添加为以前的兄弟姐妹孩子:输入被触摸
目前这是我的 html 表单
<ng-form name="streamValueForm>
<input name="name" class="ng-touched ng-valid"/>
</ng-form>
<ng-form name="streamValueForm>
<input name="name" class="ng-untouched ng-invalid"/>
</ng-form>
这是我想做的
string[] values = { "dummy1", "dummy2", "dummy3" };
for( int i=0; i < values.Length; i++)
{
IWebElement set_values = m_driver.FindElement(By.XPath("//ng-form[@name='streamValueForm']/following-sibling::*//input[contains(@class,'ng-untouched')]"));
set_values.Click();
set_values.SendKeys(values[i]);
System.Threading.Thread.Sleep(5000);
}
当我触摸输入元素即 ng-form 的子元素时,兄弟姐妹不断添加 ng-form
解决方案
如果要选择输入字段ng-untouched ng-invalid
:
您可以使用这个 css 选择器:
ng-form[value='streamValueForm'] input[class*='ng-invalid']
Xpath 将是:
//ng-form[@value='streamValueForm']/input[contains(@class,'ng-invalid')]
推荐阅读
- swift - 快速将结构数据从类发送到实例
- tidygraph - 从 tidygraph 包中获取边缘数据
- javascript - 如何在递归中使用多个承诺?
- graph - Prometheus / Grafana - 我如何创建一个图表来显示每个员工签订的提案的变化?
- javascript - Vue JS,通过组件的模态窗口
- react-native - React Native Expo on LAN,总是运行同一个应用程序
- java - 是否有可能有一种方法可以根据条件在 Java 中返回不同的类对象?
- javascript - Nodejs MQTT:取消订阅不是一个功能
- php - Paypal Checkout SDK - 立即付款
- powershell - 跨多行的正确日志文件格式