我正在嘗試更改 div 的文本。我試圖通過 (send_keys) 函式更改它,但它沒有用。所以我試圖用java腳本改變它,就像這樣:
element = self.chrome.find_element_by_xpath('//div[@]')
self.chrome.execute_script("arguments[0].textContent = 'hello world'", element)
注意:我正在嘗試更改 div 的文本,因為此 div 是電子郵件的容器
它起作用了,但是當我單擊“發送”按鈕時,它會發送一封空電子郵件。有沒有辦法確認我更改的文本?或者在 javascript 中做那種事情的東西?
uj5u.com熱心網友回復:
您很可能成功地編輯了 div 的文本,但是當您單擊發送時,設定電子郵件正文字串的 JS 事件偵聽器并未接收到您的更改。
填寫表格時,發送鍵是正確的方法,這讓我相信您沒有選擇正確的元素來輸入。您會期望看到一個輸入欄位( <input type="text" ...>) 或者可能是一個文本區域( <textarea ...>) 作為在用戶鍵入時具有焦點的元素。
首先要做的是單擊您要輸入的輸入欄位,然后右鍵單擊它并檢查元素,這應該會引導您進入您輸入的最里面的元素。它可能不是一個 div(盡管它可能包含在一個中)。
在他們確實讓你輸入一個 div 的奇怪場景中,你似乎做了正確的事情。盡管通常參考的方式不同,并且可能由于您可能想要嘗試的textContent和屬性之間的細微差別:innerText
element = self.chrome.find_element_by_xpath("//div[@class='ace_line']")
self.chrome.execute_script("arguments[0].innerText = 'hello world'", element)
在這種不太可能發生的情況下,您可能希望單擊 div 以使其獲得焦點和/或通過發送鍵來鍵入,以便您的鍵入被站點需要配置的 JS 按鍵偵聽器拾取。
底線:您應該首先在控制臺中使用 chrome/firefox 檢查器和 document.getElementBy... 來確定網頁中實際發生的情況。應該有一些輸入元素 ( var input = document.getElementBy...;) 您可以在控制臺中選擇,其值屬性 ( input.value) 將在您鍵入時更改。在控制臺中以編程方式查找/處理此元素,確認它發送帶有所需正文的電子郵件,然后您可以在 python 中對其進行編碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/459643.html
標籤:javascript Python 硒 谷歌浏览器
上一篇:當瀏覽器選項卡隱藏且不活動時,Chrome(和其他瀏覽器)如何處理設定為高于1000毫秒的“setTimeout”?
下一篇:Favicon僅顯示索引路由
