2016-07-22 13 views
1

私は、ページに隠された入力テキストを持っています。 Seleniumは、デフォルトではキーを割り当てたり、ページ内の隠し要素にアクセスしたり、帽子が理解できるようにすることはできませんが、この場合は隠し要素にアクセスする必要があります。 は、私はこのコードを使用してIJavaScriptExecutorからメソッドExecuteScriptを呼び出しています:ExecuteScriptは自分の要素の可視性を変更しません - 要素が表示されません

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("*"); 
+0

この 'document.getElementById( 'ctl00_ContentPlaceHolder1_tbIsCaptchaChecked')。setAttribute( 'display'、 'flex')'をブラウザコンソールで手動で試したところ、要素は表示されますか? –

+0

executeScriptとfindelementの間の時間が短くても、DOMのレプリケーションが行われず、要素がまだ見えない場合もあります。あなたは間に待機を挿入しようとしましたか? –

+0

@TimBourguignon私はそれを試みた、私は10秒を追加しましたが、運がない –

答えて

1

js.ExecuteScript("document.getElementById('ctl00_ContentPlaceHolder1_tbIsCaptchaChecked').setAttribute('display', 'flex')"); 

しかし、私はエラーを取得していますと、まだ運「の要素を見えない」

をここに私の完全なコードです

代わりにスタイルプロパティを設定します。

"document.getElementById('...').style.display = 'flex';" 

Seleniumから見えるようにするには、要素にもサイズが必要であることに注意してください。

関連する問題