簡體   English   中英

如何 select 使用 selenium python 來自谷歌表單下拉元素的值

[英]How to select a value from a google form drop down element using selenium python

我一直在嘗試通過從谷歌表單下拉菜單中選擇值來自動完成谷歌表單,但沒有成功。 我使用了 Select 但收到一條錯誤消息,說 Select 僅適用於 select 元素。 我對 python 和 selenium 庫比較陌生,請提前幫助和感謝。

錯誤:selenium.common.exceptions.UnexpectedTagNameException:消息:Select 僅適用於元素,不適用於

這是我一直在嘗試自動化https://docs.google.com/forms/d/e/1FAIpQLSf4Yo0lQIBOTi0ANskke1J7WhVbI_ruBYomp1xe231RZooPNw/viewform的谷歌表格

只需通過單擊打開標簽,然后單擊所需的元素。

driver.get("https://docs.google.com/forms/d/e/1FAIpQLSf4Yo0lQIBOTi0ANskke1J7WhVbI_ruBYomp1xe231RZooPNw/viewform")
wait = WebDriverWait(driver,10)
search = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.quantumWizMenuPaperselectOption.appsMaterialWizMenuPaperselectOption.freebirdThemedSelectOptionDarkerDisabled.exportOption.isSelected.isPlaceholder")))
search.click()     
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,"div.exportSelectPopup.quantumWizMenuPaperselectPopup.appsMaterialWizMenuPaperselectPopup > div:nth-child(3) > span"))).click()

進口

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC

這在 selenium 中不是很好的做法。

出於多種原因,不建議使用 WebDriver 登錄 Gmail 和 Facebook 等網站。 除了違反這些網站的使用條款(您有可能關閉帳戶)之外,它速度慢且不可靠。

理想的做法是使用 email 提供商提供的 API,或者在 Facebook 的情況下,開發人員工具服務公開了 API 用於創建測試帳戶、朋友等。 盡管使用 API 可能看起來有點額外的艱苦工作,但您將在速度、可靠性和穩定性方面得到回報。 API 也不太可能發生變化,而網頁和 HTML 定位器經常變化,需要您更新測試框架。

在測試的任何時候使用 WebDriver 登錄第三方站點都會增加測試失敗的風險,因為它會延長測試時間。 一般的經驗法則是更長的測試更脆弱和不可靠。

符合 W3C 的 WebDriver 實現還使用 WebDriver 屬性注釋導航器 object,以便可以緩解拒絕服務攻擊。

暫無
暫無

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

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