<div class="actionButton-container row">
<input type="hidden" name="addComment" value="TES-2" id="addCommentTES-2"/>
<div class="col-sm-12 col-xs-12">
<!-- RESET BUTTON -->
<!-- button type="submit" class="btn blue changeBtn" id="Add" type="submit">Add</button>
<button type="button" class="btn white changeBtn" id="cancel">Cancel</button> -->
<button class="btn blue changeBtn" id="public" onclick="addCommentsForUser()" type="button">Public</button>
<button class="btn blue changeBtn" id="inner" onclick="addCommentsForUser()" type="button">Inner</button>
<button type="button" class="btn white changeBtn" id="cancel">Cancel</button>
</div>
</div>
上面是HTML代码。我尝试使用下面的代码来获取硒中的按钮并单击。它说找不到该元素。
driver.FindElement(By.ClassName("actionButton-container")).FindElement(By.Id("public")).Click();
或
driver.FindElement(By.Id("public")).Click();
有人知道解决方案吗?
答案 0 :(得分:0)
您可以这样使用,因为您不共享URL,因此很难下结论。但是尝试一下:
WebDriverWait wait = new WebDriverWait(driver.driver, TimeSpan.FromSeconds(Time));
wait.Until(ExpectedConditions.ElementToBeClickable(element));
或
WebDriverWait wait = new WebDriverWait(driver.driver, TimeSpan.FromSeconds(Time));
wait.Until(ExpectedConditions.visibilityOfElementLocated(element));
答案 1 :(得分:0)
根据您共享的 HTML ,单击带有 Public 文本的按钮,您需要为所需的引入 WebDriverWait >可以点击的元素,您可以使用以下解决方案:
new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//div[@class='actionButton-container row']//button[@class='btn blue changeBtn' and @id='public']"))).Click();
答案 2 :(得分:0)
driver.FindElement(By.XPath("//*[@id='commentSFHD-12']")).SendKeys("TEST Function");
System.Threading.Thread.Sleep(5000);
IWebElement ibtn3 = driver.FindElement(By.Id("public"));
IJavaScriptExecutor executor = (IJavaScriptExecutor)driver;
executor.ExecuteScript("arguments[0].click();", ibtn3);
通过使用上面的代码,它现在可以正常工作