【问题标题】:Fill date in google form with selenium用硒在谷歌表格中填写日期
【发布时间】:2021-09-25 15:10:04
【问题描述】:

我是这个领域的新手,我想使用 selenium 制作机器人来使用此代码填写谷歌表单网站

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

today_date = datetime.today().strftime('%Y-%m-%d')
driver = webdriver.Chrome()
#driver.implicitly_wait(30)
wait = WebDriverWait(driver, 30)
driver.get("https://forms.gle/VUwbshGuXxDb7NRbA")
time.sleep(1)
date= wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.quantumWizTextinputPaperinputInput")))
driver.execute_script(f"arguments[0].setAttribute('value', '{today_date}')", date)
next = driver.find_element_by_css_selector("#mG61Hd > div.freebirdFormviewerViewFormCard.exportFormCard > div > div.freebirdFormviewerViewNavigationNavControls > div > div.freebirdFormviewerViewNavigationLeftButtons > div > span").click()

但我无法单击下一步。 Google 表单无法识别日期

【问题讨论】:

  • 您是否尝试过使用 send_keys() 函数?
  • 是的,它不会发送密钥,所以我有人告诉我使用这个

标签: python selenium google-forms


【解决方案1】:

您可以使用下面的 xpath 来单击下一步按钮。

//span[text()='Next']/..

在代码中:

today_date = datetime.today().strftime('%Y-%m-%d')
driver = webdriver.Chrome()
#driver.implicitly_wait(30)
wait = WebDriverWait(driver, 30)
driver.get("https://forms.gle/VUwbshGuXxDb7NRbA")
time.sleep(1)
date= wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.quantumWizTextinputPaperinputInput")))
driver.execute_script(f"arguments[0].setAttribute('value', '{today_date}')", date)
wait.until(EC.element_to_be_clickable((By.XPATH, "//span[text()='Next']/.."))).click()

【讨论】:

  • 谢谢,但还是不行
  • 它确实在我的本地机器上工作.. 有什么错误?
  • google 表单仍然无法识别日期。好像日期还是空的,需要填写
  • @PasConnu :这是一个功能问题,我的代码没有问题。当我们手动执行时,我们会遇到同样的异常,不是吗?
  • 正如我所说,我对这个东西知之甚少,所以我只是用谷歌搜索它是如何工作的,所以现在它已经工作了,非常感谢你的帮助
【解决方案2】:

我找到了一个使用动作链的解决方案,这是代码

from selenium import webdriver
import time
from datetime import datetime
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys


today_date = datetime.today().strftime('%Y-%m-%d')
driver = webdriver.Chrome()
#driver.implicitly_wait(30)
wait = WebDriverWait(driver, 30)
driver.get("https://forms.gle/VUwbshGuXxDb7NRbA")
time.sleep(1)
date= wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.quantumWizTextinputPaperinputInput")))
driver.execute_script(f"arguments[0].setAttribute('value', '{today_date}')", date)
element =driver.find_element_by_xpath("//span[text()='Berikutnya']")

element.click()
time.sleep(1)
webdriver.ActionChains(driver).key_down(Keys.ARROW_RIGHT).send_keys("a").perform()
time.sleep(1)
element.click()

【讨论】:

    猜你喜欢
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    相关资源
    最近更新 更多