繁体   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