2 回答
TA贡献1775条经验 获得超8个赞
看来问题在于如何显示元素的文本:
如您在这里看到的:
<span data-bind="text: $data.Apellido1 + ' ' + $data.Apellido2 + ', ' + $data.AlumnoNombre">Ap_Alumno_0AñosA_1 , Nb_Alumno_0AñosA_1</span>
范围的文本在逗号之前包含两个空格: Ap_Alumno_0AñosA_1 ,
但是,其中的文本只会出现一个空格 Ap_Alumno_0AñosA_1 , Nb_Alumno_0AñosA_1
这似乎是一个问题 knockout.js
无论如何,我通过更改驱动程序查找元素的方式来修复它:
driver.FindElement(By.XPath("//td/span[contains(text(), '" + nombreAlumno.Substring(nombreAlumno.IndexOf(",")) + "')]/ancestor::tr/td/input[@data-columna = 'colAusenciaDia']")).Click();
这样,代码将搜索<span>
仅包含文本的“ a” ,直到,
TA贡献1862条经验 获得超6个赞
找到元素:
<input type="checkbox" data-columna="colAusenciaDia" data-bind="attr: { 'data-AlumnoId': $data.AlumnoId }" data-alumnoid="9f900e5a-3325-4179-9c6f-a7bc008988c0"/>
并调用click()您可以使用以下代码行:
WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0,5,100));
IWebElement element = wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//td/span[contains(., '" + nombreAlumno + "')]//following::td[2]/input"))).Click();
您可以更细化并使用data-columna设置为colAusenciaDia的属性值,如下所示:
WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0,5,100));
IWebElement element = wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//td/span[contains(., '" + nombreAlumno + "')]//following::td/input[@data-columna='colAusenciaDia']"))).Click();
- 2 回答
- 0 关注
- 208 浏览
添加回答
举报