我是XPath和CssSelector的新手。
以下是目标html来源。
<input value="1" name="uji.model.611876.button" type="radio"></input>
611876 是一个随机数。
我尝试了代码:
driver.FindElement(By.Id("//input[@value=\"1\"]")).Click();
和
driver.FindElement(By.Id("//input[@value='1']")).Click();
但无法找到元素错误。
我需要帮助解决这种情况。谢谢你的阅读。
答案 0 :(得分:5)
如果您ElementNotVisibleException
尝试等待一段时间,直到目标input
变为可见:
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(15));
IWebElement element = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//input[starts-with(@name, \"uji.model.\")][@type=\"radio\"]")));
element.Click();
答案 1 :(得分:0)
您可以执行类似
的操作driver.findElement(By.tagName("input")).Click();
答案 2 :(得分:0)
如果导致问题,您可以尝试JavascriptExecuter
执行javascript
代码 -
IWebElement element= driver.FindElement(By.XPath("//input[@value=\"1\"]")));
IJavaScriptExecutor js = driver as IJavaScriptExecutor;
js.ExecuteScript("arguments[0].click();", element);