mustafa bolat
mustafa bolat

Reputation: 37

I can't solve this problem can someone help me? "'NoneType' object has no attribute 'send_keys'"

The problem is how can i use send_keys? Because it is not writing in the search bar.

I search in the documents but i can't solve it.

from selenium import webdriver 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.keys import Keys 
from selenium.webdriver.common.by import By 
import time 

# Open Chrome
driver = webdriver.Chrome('C:/xampp/htdocs/pegasus/chromedriver') 

# Going to website
driver.get("https://www.flypgs.com/en")

# Select button by class name and click on it.
frombtn = driver.find_element_by_class_name('select2-selection').click()
searchbtn = driver.find_element_by_class_name("select2-search__field").click()

# ERROR is here below on send_keys.
searchbtn.send_keys('Amsterdam')

time.sleep(1000000)

The error what is giving is:

Exception has occurred: AttributeError
'NoneType' object has no attribute 'send_keys'
File "C:\xampp\htdocs\pegasus\app.py", line 17, in <module>
searchbtn.send_keys('Amsterdam')

Upvotes: 0

Views: 159

Answers (1)

furas
furas

Reputation: 142631

You assign wrong value to searchbtn

You assing value returned by click() which is always None

You have to do it in two steps

searchbtn = driver.find_element_by_class_name("select2-search__field")
searchbtn.click()

and then searchbtn is correct and you can use send_key()


After this change code works

from selenium import webdriver 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.keys import Keys 
from selenium.webdriver.common.by import By 
import time 

driver = webdriver.Chrome('C:/xampp/htdocs/pegasus/chromedriver') 

driver.get("https://www.flypgs.com/en")

frombtn = driver.find_element_by_class_name('select2-selection')
frombtn.click()

searchbtn = driver.find_element_by_class_name("select2-search__field")
searchbtn.click()

searchbtn.send_keys('Amsterdam')

time.sleep(1000000)

Upvotes: 1

Related Questions