下面是我要从中删除“ disabled =“ disabled””并关闭开发工具窗口的html块。 iam将selenium-webdriver与c#一起使用。 谢谢。
<a class="btn btn-success" href="javascript:;" id="SendRFQ" data-loading-text="<i class='fa fa-spinner fa-spin'></i> Processing..." disabled="disabled" onclick="return SubmitRequisitionData("Submitted")">Click to Submit</a>
答案 0 :(得分:0)
尝试下面的代码从元素中删除属性
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript("document.querySelector('a.btn.btn-success').removeAttribute('disabled')");
P.S。请注意,实际用户不会修改HTML DOM来启用链接,因此,如果您需要脚本来模拟类似用户的行为,则应该找到另一种方法来启用元素...
答案 1 :(得分:0)
要删除/删除属性及其值为 disabled="disabled"
的值,因为该元素已启用JavaScript您需要使用 WebDriverwait 使元素可见,并且可以使用以下解决方案之一:
使用PartialLinkText
:
IWebElement element = new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementIsVisible(By.PartialLinkText("Click to Submit")));
((IJavascriptExecutor)driver).ExecuteScript("arguments[0].removeAttribute('disabled')", element);
使用CssSelector
:
IWebElement element = new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementIsVisible(By.CssSelector("a.btn.btn-success#SendRFQ")));
((IJavascriptExecutor)driver).ExecuteScript("arguments[0].removeAttribute('disabled')", element);
使用XPath
:
IWebElement element = new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementIsVisible(By.XPath("//a[@class='btn btn-success' and @id='SendRFQ']")));
((IJavascriptExecutor)driver).ExecuteScript("arguments[0].removeAttribute('disabled')", element);