Search code examples
pythonseleniumselenium-webdriverwebdriverwebdriverwait

Unable to locate element within an iframe through Selenium


I'm new to Selenium. I'm trying to write a Python script that will log in to a particular form. The form is located at http://www.tvta.ca/securedContent

The code I'm running is:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://tvta.ca/securedContent/")
elem = driver.find_element_by_name("txtUserName")
elem.clear()
elem.send_keys("<<my email>>")

I get an error that says:

selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [name="txtUserName"]

I'm not sure what I'm missing here? I've checked the source of the webpage the login field is definitely named txtUserName.


Solution

  • You need to switch to the frame to write text in the textbox, try to check syntax once as I have less in good in Python

    framLogin= driver.find_element_by_id("membeeLoginIF")
    driver.switch_to.frame(framLogin)
    EmailTxt = driver.find_element_by_name("txtUserName")
    EmailTxt.send_Keys("Test@gmail.com")
    

    Same in Java

    WebElement framLogin= driver.findElement(By.id("membeeLoginIF"));
    driver.switchTo().frame(framLogin);
    WebElement EmailTxt = driver.findElement(By.name("txtUserName"));
    EmailTxt.sendKeys("Test@gmail.com");