0

enter image description hereI've been trying to make a Python script to login into a certain website, navigate through the menu, fill out a form and save the file it generates to a folder. But at this point I can't fill out the form, probably because it is not in the website HTML. It is more like a new window.

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.Firefox()
driver.maximize_window()
driver.get("https://directa.natal.rn.gov.br/")
#Logando
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"frame\[name='mainsystem'\]\[src^='main'\]")))
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.input\[name='usuario'\]"))).send_keys("11844691000126")
driver.find_element_by_css_selector("input.input\[name='senha'\]").send_keys("Link2007")
driver.find_element_by_css_selector("button.btn#acessar").click()
#Nota natalense
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"frame\[name='mainsystem'\]\[src^='main'\]")))
driver.find_element_by_id('limenu9').click()
#operações
driver.find_element_by_css_selector("a.submenu\[value='formsmenu14'").click()
#download de NF-e
driver.find_element_by_css_selector('#formsmenu14 > li:nth-child(4)').click()
#Selecionar empresa
4
  • Post your html might be that window is on new frame you need to switch frame. if that is frame elements. Commented May 3, 2019 at 4:42
  • Give input to which field? Commented May 3, 2019 at 7:27
  • @DebanjanB To the date field for example Commented May 3, 2019 at 14:44
  • @VictorMedeiros You have got an accepted answer now. Good luck :) Commented May 3, 2019 at 14:47

1 Answer 1

1

I think this will help, I have just provided the way to reach to the frame and enter a single value on that form, you can add rest:

# -*- coding: utf-8 -*-


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
import time

driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://directa.natal.rn.gov.br/")
#Logando
driver.switch_to.frame(driver.find_element_by_name("mainsystem"))
driver.find_element_by_id('usuario').send_keys('11844691000126')
driver.find_element_by_id("senha").send_keys("Link2007")
driver.find_element_by_css_selector("button.btn#acessar").click()
#Nota natalense
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.NAME,"mainsystem")))
driver.find_element_by_id('limenu9').click()
time.sleep(1)
#operações
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "#limenu9 > div > a:nth-child(3) > span:nth-child(1)")))
element = driver.find_element(By.CSS_SELECTOR, '#limenu9 > div > a:nth-child(3) > span:nth-child(1)')
webdriver.ActionChains(driver).move_to_element(element).perform()
#download de NF-e
driver.find_element_by_xpath('//*[@id="formsmenu14"]/li[4]/a/span').click()

time.sleep(1)
driver.switch_to.frame(0)
driver.switch_to.frame(0)
driver.find_element_by_xpath('//input[@name="WFRInput668298"]').send_keys('1')
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.