C#Selenium findElements by XPath返回null IList firstname=driverOne.FindElements(By.XPath(“/*[@id=“+((char)34)+”4cd85da6-f2d1-4361-9864-e187dc763f9b“+((char)34)+]”);
我尝试从下面的HTML中获取元素,但它返回null,因为每次我重新加载页面时XPath都会被更改,因为我认为元素是从Angular中随机创建的C#Selenium findElements by XPath返回null IList firstname=driverOne.FindElements(By.XPath(“/*[@id=“+((char)34)+”4cd85da6-f2d1-4361-9864-e187dc763f9b“+((char)34)+]”);,c#,angular,selenium-webdriver,C#,Angular,Selenium Webdriver,我尝试从下面的HTML中获取元素,但它返回null,因为每次我重新加载页面时XPath都会被更改,因为我认为元素是从Angular中随机创建的 IList<IWebElement> firstname = driverOne.FindElements(By.XPath("//*[@id="+ ((char)34) + "4cd85da6-f2d1-4361-9864-e187dc763f9b" + ((char)34) + "]")); 我也试着用Id和CSS选择器来做,但是在
IList<IWebElement> firstname = driverOne.FindElements(By.XPath("//*[@id="+ ((char)34) + "4cd85da6-f2d1-4361-9864-e187dc763f9b" + ((char)34) + "]"));
我也试着用Id和CSS选择器来做,但是在重新加载后一切都改变了,所以我不知道该怎么做
那么我如何获得元素呢?尝试使用数据测试
<input id="0bad9cfd-028d-404c-a498-17a3f5f1ae81" type="text" data-test="first-name-input" placeholder="" class="ng-untouched ng-pristine ng-invalid"><!----><!---->
当您将ID分配给html标记时,严格如下所示:
角度渲染过程后,ID不会更改。您可以向需要访问的每个元素添加Id 当你说一切都改变了,你这是什么意思。类名也会改变?太多太多了,不是我的HTML,每次改变都太多了,但是太多了
firstname =driver.FindElement(By.XPath("//*[@data-test='first-name-input']"));