Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

C#Selenium findElements by XPath返回null IList firstname=driverOne.FindElements(By.XPath(“/*[@id=“+((char)34)+”4cd85da6-f2d1-4361-9864-e187dc763f9b“+((char)34)+]”);

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选择器来做,但是在

我尝试从下面的HTML中获取元素,但它返回null,因为每次我重新加载页面时XPath都会被更改,因为我认为元素是从Angular中随机创建的

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']"));