python - 如何使用 python 使用 selenium 处理 Google 表单的下拉列表
问题描述
有人可以帮助我了解如何在 python 中使用 selenium 来自动化谷歌表单中的下拉菜单。我面临的问题是我能够找到下拉菜单并选择它,但我无法选择我尝试过的选项,select_by_index
但它不起作用。先感谢您。(我是论坛的新手,如果我以模棱两可的方式提出问题,请见谅)
drop = Select(browser.find_element_by_class_name('quantumWizMenuPaperselectContent').click())
drop.select_by_index(0)
解决方案
虽然我认为可能有更好的方法来做到这一点,但我设法做到了:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome("YOUR PATH HERE")
driver.get("YOUR SITE HERE")
driver.find_element(By.CSS_SELECTOR, ".isSelected").click()
# Item 1 in drop down has an ending Div of 3
# Item 2 ending div of 4
# I added the + 2 in the f string so that DROPDOWN_ITEM = 1 Means find for div 3
DROPDOWN_ITEM = 1
dropdown_item_1 = WebDriverWait(driver, 10).until(EC.presence_of_element_located
((By.XPATH, f'//*[@id="mG61Hd"]/div[2]/div/div[2]/div/div/div/div[2]/div/div[2]/div[{DROPDOWN_ITEM} + 2]')))
dropdown_item_1.click()
如果您只想定位第一项,可以使用以下内容:
dropdown_item_1 = WebDriverWait(driver, 10).until(EC.presence_of_element_located
((By.XPATH, '//*[@id="mG61Hd"]/div[2]/div/div[2]/div/div/div/div[2]/div/div[2]/div[3]')))
dropdown_item_1.click()
推荐阅读
- javascript - 下拉菜单上的切换开关关闭菜单
- reactjs - 在 redux 异步操作中使用 setTimeout 以模拟较慢的响应是一种不好的做法吗?反应 JS
- apache-spark - SparkConf 和 sparkContext 的目的
- python - Pandas:如何通过 MultiIndex 定位 []
- javascript - javascript 类,返回可能的错误来处理它的方法
- excel - 月份中的单个数字造成日期格式 dd/mm/yyyy 的差异
- node.js - mongoDB watch() 集合
- javascript - 我提交时的html表单没有调用函数密码验证代码有什么问题吗?
- c++ - 通过重新排列数组元素来最大化特定子数组的总和?
- python - 将 Facenet .npz 训练模型转换为 tensorflow-lite (tflite) 格式