JavascriptExecutor:无法读取属性' removeAttribute'为null

时间:2018-05-06 12:03:22

标签: javascript html dom selenium-webdriver

我正在使用Javascript执行程序删除readonly属性,但它发出错误。 Cannot read property 'removeAttribute' of null

我看过不同的帖子,人们确认从Chrome上删除AdBlock后就可以了。我不知道什么是AdBlock以及如何在运行时从Chrome Binary中删除它,所以我尝试了Firefox(Gecko Driver),但它也犯了同样的错误。

代码:

driver.get("http://jsfiddle.net/343Rb/");
runJS().executeScript("document.getElementById('myInput').removeAttribute('readonly')");

浏览器我尝试过: 最新的Chrome Binary,Windows 7上的Firefox(GeckoDriver最新版)

我经历的链接:

  1. TypeError: Cannot read property "removeAttribute" of null
  2. Cannot read property 'removeAttribute' of null: Cant find source of it
  3. Cannot read property *0* of null
  4. 以上几篇文章纯粹基于JS,所以我相信他们不回复我的原因。

    我正在使用Selenium 3.0,Windows 7,Firefox,Chrome,Java,Testng

1 个答案:

答案 0 :(得分:0)

问题是你想要的元素在<iframe>内。在查询元素之前,您需要切换到它:

driver.switchTo().frame('result');

或者:

driver.switchTo().frame(driver.findElement(By.name('result')));