How to perform data fetch on button click on a built in html page using selenium

I am new to Selenium and I am trying to mimic user actions on a site to fetch data from a built in html page on button click. I am able to populate all the field details, but button click is not working, it looks like js code not running.

I tried many options like adding wait time, Action chain etc but it didnt work, i am providing site and code i have written.

driver = webdriver.Chrome()
driver.get("https://www1.nseindia.com/products/content/derivatives/equities/historical_fo.htm")
driver.implicitly_wait(10)

assigned values to all the other fields

driver.find_element_by_id('rdDateToDate').click()

Dfrom = driver.find_element_by_id('fromDate')
Dfrom.send_keys("02-Oct-2020")

Dto = driver.find_element_by_id('toDate')
Dto.send_keys("08-Oct-2020")

innerHTML = driver.execute_script("document.ready")
sleep(5)

getdata_btn = driver.find_element_by_id('getButton')
ActionChains(driver).move_to_element(getdata_btn).click().click().perform()

Upvotes: 0

Views: 488

Answers (1)

StyleZ
StyleZ

Reputation: 1273

I recommend using a full xpath.

chrome.get("https://www1.nseindia.com/products/content/derivatives/equities/historical_fo.htm")
time.sleep(2)
print("click")
fullxpath = "/html/body/div[2]/div[3]/div[2]/div[1]/div[3]/div/div[1]/div/form/div[19]/p[2]/input"
chrome.find_element_by_xpath(fullxpath).click()

I have tried the button clicking and it worked with XPath ... I though its because of someone used the ID twice on a website, but I can not find it ... so i have no idea whats going wrong there ...

Good luck :)

Upvotes: 1

Related Questions