2017-04-06 48 views
0

我正嘗試使用Selenium python將一些文本發送到搜索textarea的Google Adwords Keyplanner toolSend Keys to Textarea title Seleium

手動輸入時,來自textarea的文本轉到其屬性'title'。 textarea的看起來是這樣的:

<textarea class="spl-a sprb-c spl-d" rows="1" id="gwt-debug-keywords-text-area" aria-labelledby="gwt-uid-94 gwt-uid-74" wrap="off" style="overflow: hidden;" dir="ltr" title="mytext"></textarea> 

結果:

driver.find_element_by_tag_name('textarea').send_keys('mytext') 

driver.find_element_by_id('gwt-debug-keywords-text-area').send_keys('mytext') 

產生

selenium.common.exceptions.ElementNotVisibleException: Message: element not visible 

有另一種方式來發送鍵此烤焦ch textarea?我有500個關鍵字,我需要抓取數據。

文本區域的全碼:

<div class="spl-c spI-d" style="width: 575px;"> 
<div id="gwt-uid-119" class="sprb-a"> 
<div class="sprb-b spl-b" style="display: none;" aria-hidden="true">For example, flowers or used cars</div> 
<textarea id="gwt-debug-keywords-text-area" class="spl-a sprb-c spl-d" rows="1" aria-labelledby="gwt-uid-139 gwt-uid-119" style="overflow: hidden;" dir="ltr" title="my keyword" wrap="off"></textarea> 
</div> 
</div> 
</div> 
+0

可以幫我一個忙,試試打開控制檯窗口運行下面的腳本$(「#textarea」).val(「mytext」)。change(); –

+0

你的代碼錯了,textarea不是一個id,而是一個標籤,而val不是一個函數。 jquery和selenium webdriver有什麼關係? – Hisagr

+0

有沒有理由不使用ID?您是否確認過「TEXTAREA」是唯一一個頁面?在Chrome開發控制檯中嘗試'$$(「textarea」)。length',看看它是否返回1.我的猜測是,它不會,並且可能是DOM中的第一個不可見。 – JeffC

回答

0

你想與之交互的元素,但可尋址的硒,因爲它是隱藏一個div裏面 - 這一個:

<div class="sprb-b spl-b" style="display: none;" ... 

還有一個元素實際上正在接受用戶的輸入 - 使用按鍵事件處理程序查找元素,以及DOM web中輸入字符的更改。