1
我有一个隐藏的输入文本在我的页面,我需要取消隐藏它,并为其键入'*'。 Selenium
默认情况下不允许您分配键或访问页面中的隐藏元素,并且帽子是可以理解的,但在这种情况下,我需要访问该隐藏元素。ExecuteScript不会改变我的元素的可见性 - 元素不可见
js.ExecuteScript("document.getElementById('ctl00_ContentPlaceHolder1_tbIsCaptchaChecked').setAttribute('display', 'flex')");
但仍没有运气,因为我得到的错误“元素不可见”
这里是我的完整代码:
var _driver = new ChromeDriver();
var js = _driver as IJavaScriptExecutor;
js.ExecuteScript("document.getElementById('ctl00_ContentPlaceHolder1_tbIsCaptchaChecked').setAttribute('display', 'flex')");
_driver.FindElement(By.CssSelector("input#ctl00_ContentPlaceHolder1_tbIsCaptchaChecked.hiddenRecaptcha")).SendKeys("*");
当您在浏览器控制台上手动尝试此'document.getElementById('ctl00_ContentPlaceHolder1_tbIsCaptchaChecked')。setAttribute('display','flex')'时,元素是否可见? –
难道是executeScript和findelement之间的时间太短,DOM上的复制没有发生,并且你的元素仍然是不可见的。你有尝试插入一个等待? –
@TimBourguignon我试过了,我加了10秒但没有运气 –