C# Can';t通过id-selenium查找元素
尽管使用了C# Can';t通过id-selenium查找元素,c#,selenium,selenium-webdriver,webdriver,C#,Selenium,Selenium Webdriver,Webdriver,尽管使用了id我还是找不到输入元素。我已经尝试了CssSelector,Xpath,Id。为什么不能这样处理这个元素 我试过: By id = By.Id("First name:input"); By xpath = By.Xpath("//*[@id=\\"First name:input\\"]"); By selector = By.CssSelector("#First\\ name\\:input"); 我使用explict wait等待输入元素 输入元素: 名字: 试试看:
id
我还是找不到输入元素。我已经尝试了CssSelector
,Xpath
,Id
。为什么不能这样处理这个元素
我试过:
By id = By.Id("First name:input");
By xpath = By.Xpath("//*[@id=\\"First name:input\\"]");
By selector = By.CssSelector("#First\\ name\\:input");
我使用explict wait
等待输入元素
输入元素:
名字:
试试看:byid=By.id(“名字”)代码>您可以使用:
By xpath = By.Xpath("//input[@id='First name:input']");
By selector = By.CssSelector("input[id='First name:input']");
根据您共享的HTML,在所需元素上调用Click()
/SendKeys()
,因为该元素是一个元素,您需要指示WebDriverWait以使该元素可单击,并且您可以使用以下任一解决方案:
css选择器
:
new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("input.k-textbox.ng-pristine.ng-empty.ng-invalid.ng-invalid-required.ng-valid-pattern.flow-required.ng-touched[id*='First']"))).Click();
XPath
:
new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//input[@class='k-textbox ng-pristine ng-empty ng-invalid ng-invalid-required ng-valid-pattern flow-required ng-touched' and @id=\"First name:input\"]"))).Click();
试试这个:
最好在没有空格的情况下更改ID
如果您想按Id搜索,请尝试以下操作:by.Id(“名字”)
如果您想使用XPath:by.XPath(“/*[@id='First\u name'])
或
By.Xpath(//label[@id='First_name'])
或By.Xpath(//label[contains(text(),'First name:')])”
对于Xpath参考,您可以在这里找到
抱歉,.css选择器从未使用过
名字:
这些定位器是否有任何异常?