簡體   English   中英

如何使用 selenium webdriver select 元素樣式

[英]How to select an element style with selenium webdriver

我無法讓網站使用 selenium 顯示它的隱藏部分。 我已經嘗試過在 stackoverflow 上找到的舊遮陽篷,但它們似乎不再起作用了。 我還看到開發人員通過請求解決了這個問題,但這不是我所熟悉的。

我正在嘗試使驗證碼令牌元素可見以使網站自動化。 為了制作我的代碼,我正在 google recaptcha 演示網站( https://www.google.com/recaptcha/api2/demo )上進行培訓。

我遇到了麻煩,因為為了顯示這個元素,我需要單擊 HTML 中的一個案例,而我不知道如何使用 selenium 來做到這一點。

我見過有人說為了顯示元素我只需要刪除display: none; HTML 中的字符串,但它不起作用。 我似乎找到的唯一方法是使用谷歌瀏覽器在檢查元素中單擊element.style{案例。

我需要與之交互的網站代碼的 HTML 部分是:

<textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px;height: 40px;border: 1px solid rgb(193, 193, 193);margin: 10px 25px;padding: 0px;resize: none;display: none;"></textarea>

你可以看到顯示:無; 字符串末尾的大小寫

當我單擊該案例時(我放了 2 個屏幕截圖,以便您更清楚),它會在代碼中寫入以下內容:

/* 顯示:無; */

然后不可見的元素出現了,我可以與之交互。

我的問題是,如何讓 selenium 做到這一點? 我確實知道它與 CSS 有關,但由於沒有與顯示相反的內容:沒有我不知道該怎么做。

如果我不夠清楚,請告訴我。

謝謝

元素不顯示

顯示元素

您可以使用 javascript 刪除樣式屬性。 您可以告訴 selenium 為您執行 javascript 代碼。

像這樣的東西:

driver.execute_script('document.getElementById("g-recaptcha-response").style.display = null;')

有關在 selenium 中執行 javascript 的更多信息:

https://pythonbasics.org/selenium-execute-javascript/

有關使用 javascript 刪除樣式屬性的更多信息:

刪除元素上的樣式

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM