NoSuchElementException ao tentar usar o Selenium Python
Eu continuo recebendo um NoSuchElementException ao tentar usar o Selenium para encontrar um elemento em python. Estou esperando a página carregar completamente e estou mudando para o quadro certo (ou pelo menos acho que sim!).
Aqui está o código:
driver.get("https://www.arcgis.com/home/signin.html")
driver.implicitly_wait(10)
driver.switch_to_frame("oAuthFrame")
elem = driver.find_element_by_name('username')
elem1 = driver.find_element_by_name('password')
Aqui está a parte da página da Web que estou tentando acessar:
<input id="user_username" class="textBox" type="text" name="username" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
que está localizado dentro
<iframe dojoattachpoint="_iFrame" id="oAuthFrame" scrolling="no" style="display: block; border: 0px;" marginheight="0" marginwidth="0" frameborder="0" width="400" height="500"...>
Você pode ver o código fonte por si mesmo emhttps://www.arcgis.com/home/signin.html
Saída de erro completa:
Traceback (most recent call last):
File "C:\Python34\beginSample.py", line 12, in <module>
elem = driver.find_element_by_name('username')
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", l
ine 302, in find_element_by_name
return self.find_element(by=By.NAME, value=name)
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", l
ine 662, in find_element
{'using': by, 'value': value})['value']
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", l
ine 173, in execute
self.error_handler.check_response(response)
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\errorhandler.py"
, line 164, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: 'no such element\n
(Session info: chrome=35.0.1916.153)\n (Driver info: chromedriver=2.9.248315,pl
atform=Windows NT 6.1 SP1 x86_64)'
Se alguém puder me ajudar a descobrir o que há de errado, eu agradeceria muito.
ATUALIZAR: Agora estou usando ações e depurei a ponto de não haver erros, mas também não está digitando nada. Aqui está o código:
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
actions = ActionChains(driver)
actions.send_keys("sd")
actions.send_keys(Keys.TAB)
actions.send_keys("bg")
actions.perform()