当前位置: 首页 > 面试题库 >

使用ChromeDriver和Selenium设置max属性时,无法使用send_keys将日期作为文本发送到datepicker字段

单于翰飞
2023-03-14
问题内容

我试图用来chromedriver下载一些文件。

我已切换到该位置,chromedriver是因为在firefox该链接中,我需要单击以打开一个新窗口,并且即使在完成所有必需的设置后仍会出现下载对话框,而我却无法解决它。

chromedriver可以很好地进行下载,但是send_keys()对于下面的元素我似乎不太了解,它可以在Firefox上运行,但似乎无法在此上使用它。

<input name="" value="" id="was-returns-reconciliation-report-start-date" type="date" class="was-form-control was-input-date" data-defaultdate="" data-mindate="" data-maxdate="today" data-placeholder="Start Date" max="2020-02-12">

我努力了:

el = driver.find_element_by_id("was-returns-reconciliation-report-start-date")
el.clear()
el.send_keys("2020-02-01")
el.send_keys(Keys.ENTER)  # Separately

# Tried without clear as well
# no error but the date didn't change in the browser

driver.execute_script("document.getElementById('was-returns-reconciliation-report-start-date').value = '2020-01-05'")

# No error and no change in the page

问题答案:

<input>理想情况下,要将字符序列发送到字段,您需要为引入 WebDriverWait
element_to_be_clickable()并且可以使用以下定位策略之一:

  • 使用ID

    el = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.ID, "was-returns-reconciliation-report-start-date")))
    

    el.clear()
    el.send_keys(“2020-02-12”)

  • 使用CSS_SELECTOR

    el = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "input.was-form-control.was-input-date#was-returns-reconciliation-report-start-date")))
    

    el.clear()
    el.send_keys(“2020-02-12”)

  • 使用XPATH

    el = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//input[@class='was-form-control was-input-date' and @id='was-returns-reconciliation-report-start-date']")))
    

    el.clear()
    el.send_keys(“2020-02-12”)

  • 注意 :您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    

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



 类似资料:
  • 我在数据库中存储了日期。我可以成功地获取日期。但是当涉及到将任何特定的日期设置为Report-datepicker的DatePicker时,我无法设置该日期。 下面是我用来获取日期和设置带有日期值的状态的代码。 函数,用于使用MomentJs转换日期 在获得日期之后,现在我尝试将日期设置为datepicker,并尝试设置参数。以下是代码: 我哪里出错了?有没有其他方法设置日期到DateTimePi

  • 问题内容: 我在Eclipse中使用Selenium WebDriver,并且试图将文本插入网页上的tinymce框中。这是我正在使用的代码。 光标在编辑器内部闪烁,但是未发送文本。我也尝试过这种轻微的变化,没有任何运气。 问题答案: 对于您的特定代码,我建议 尝试不同的定位,例如使用,等等。 发送密钥之前,请先单击主体。 设置innerHTML 使用TinyMCE的本地API 进一步阅读:使用S

  • 问题内容: 我正在进行数据库迁移,并且我目前有一个带有日期的字符串列(相对于为它们设置了最佳的datetime字段)。有没有可以在MySQL中调用的函数将该字段转换为日期时间,以便可以使用该日期之前或之后的日期功能? 问题答案: 如果您的日期格式不正确,请使用:

  • 问题内容: 我知道有很多关于通过JQuery / JSON使用WCF REST的文章,但是我无法使其正常工作。我目前停留在日期参数上。以下是我的C#方法: 以下是我的JavaScript代码: 我的第一个问题是我不断收到日期序列化错误: 它说它不会以开始和结束的方式开始/结束。 我的第二个问题是:我是否必须乘坐枚举数,还是有发送方法? 问题答案: 我拔了很多头发,为此流下了很多眼泪,但这确实可行。

  • null 我想更改该字段并输入任何其他金额。 我标识的Xpath- 第一次输入时是否需要使用第1个xpath..然后在输入500、1000等值时使用第2个xpath? 在每一种方式中,Click工作..但sendkeys不工作。我使用chromedriver执行,使用Selenium版本3.141.59