Как удалить атрибут элемента, используя Selenium и C #? - PullRequest
0 голосов
/ 19 ноября 2018

ниже - это фрагмент html, из которого я хочу удалить "disabled =" disabled "" и закрыть окно инструментов dev. Я использую селен-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(&quot;Submitted&quot;)">Click to Submit</a>

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Для удаления / удаления атрибута и его значения из 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);
    
0 голосов
/ 19 ноября 2018

Попробуйте приведенный ниже код для удаления атрибута из элемента

IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript("document.querySelector('a.btn.btn-success').removeAttribute('disabled')");

PS Обратите внимание, что реальный пользователь не будет изменять HTML DOM для включения ссылки, поэтому, если вам нужен сценарий для имитации поведения пользователя, вы должны найтидругой подход для включения элемента ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...