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秒但沒有運氣 –