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


driver = webdriver.Chrome()
driver.get('https://cstutil.it.siu.edu/CSRfrontend/')

link = driver.find_element_by_link_text(
 '>>SSL Certificate Signing Request/C-S-C Authorization Submission<<')
link.click()

username = driver.find_element_by_id("userNameInput")
username.clear()
username.send_keys("")

password = driver.find_element_by_name("Password")
password.clear()
password.send_keys("")

login_button = driver.find_element_by_id("submitButton")
login_button.click()        

Here is my code, I am trying to input username and password using Selenium. But I get this error:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="userNameInput"]"}
Naveen
  • 770
  • 10
  • 22

2 Answers2

0

The problem is with the first click. When the below line executes, it actually opens new tab.

link = driver.find_element_by_link_text(
 '>>SSL Certificate Signing Request/C-S-C Authorization Submission<<')
link.click()

So, you need to switch to the current new window, i have added 2 lines of code, have a look.

window_after = driver.window_handles[1]
driver.switch_to.window(window_after)

Full code:

from selenium import webdriver
import time
driver = webdriver.Chrome(executable_path='D:\chromedriver.exe')

driver.get(
 'https://cstutil.it.siu.edu/CSRfrontend/')
time.sleep(2)

link = driver.find_element_by_link_text(
 '>>SSL Certificate Signing Request/C-S-C Authorization Submission<<')
link.click()
time.sleep(2)
window_after = driver.window_handles[1]
driver.switch_to.window(window_after)
username = driver.find_element_by_id("userNameInput")
username.clear()
username.send_keys("")
time.sleep(2)
password = driver.find_element_by_name("Password")
password.clear()
password.send_keys("")
time.sleep(2)
login_button = driver.find_element_by_id("submitButton")
login_button.click()
Gokul nath
  • 494
  • 2
  • 8
  • 17
0

this error is showing because of new tab open. After click on Link it open in a new tab. Please use this code, this will be working correctly.

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


driver = webdriver.Chrome()
driver.get('https://cstutil.it.siu.edu/CSRfrontend/')

link = driver.find_element_by_link_text(
 '>>SSL Certificate Signing Request/C-S-C Authorization Submission<<')
link.click()
#Switch previous tab to new tab
driver.switch_to.window(driver.window_handles[1]) 
username = driver.find_element_by_id("userNameInput")
username.clear()
username.send_keys("")

password = driver.find_element_by_name("Password")
password.clear()
password.send_keys("")

login_button = driver.find_element_by_id("submitButton")
login_button.click()  
Munna
  • 19
  • 2