调用onclick datepicker函数python selenium

时间:2018-03-26 10:58:28

标签: javascript python selenium selenium-webdriver web-scraping

我是selenium的新手,我正在尝试将值传递给表单。虽然我能够在普通文本框中传递值,但我无法在onclick datepicker函数中成功。这是代码。

import urllib
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.keys import Keys

driver = webdriver.PhantomJS(executable_path="C://Users//phantomjs//bin//phantomjs.exe")
driver.get('https://enquiry.icegate.gov.in/enquiryatices/sbTrack')
select = Select(driver.find_element_by_name('sbTrack_location'))
select.select_by_value("MUNDRA SEA (INMUN1)")
sb_no = driver.find_element_by_name("SB_NO")
sb_no.send_keys(7353156)
sb_dt = driver.find_element_by_name("SB_DT")
sb_dt.send_keys("2017/07/14")

driver.save_screenshot("test1_scr.png")

我无法使用herereadonly input属性标记密钥。

<input type="text" name="SB_DT" value="" readonly="readonly" id="sbDATE">

1 个答案:

答案 0 :(得分:0)

在给定的Website上选择今天的日期,例如 2018/03/26 您可以使用以下代码行:

driver.find_element_by_xpath("//img[@src='/enquiryatices/image/Dateicon.gif']").click()
driver.find_element_by_xpath("//table[@class='dpTable']//td/div[@class='dpDayHighlight']").click()

更新

根据您的评论传递自定义日期,例如 2017/07/14 您必须删除 readonly =“readonly”属性,然后将日期作为文本发送如下:

sb_dt = driver.find_element_by_xpath("//input[@id='sbDATE']")
driver.execute_script("arguments[0].removeAttribute('readonly')", sb_dt);
sb_dt.send_keys("2017/07/14")