簡體   English   中英

我無法解決這個問題有人可以幫助我嗎? “'NoneType' object 沒有屬性 'send_keys'”

[英]I can't solve this problem can someone help me? “'NoneType' object has no attribute 'send_keys'”

問題是我如何使用 send_keys? 因為它沒有寫在搜索欄中。

我在文檔中搜索,但我無法解決。

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)

給出的錯誤是:

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')

您為searchbtn分配了錯誤的值

您評估click()返回的值,該值始終為None

您必須分兩步完成

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

然后searchbtn是正確的,你可以使用send_key()


在此更改代碼生效后

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)

我的第一個想法是您寧願對searchbtn object ( NoneType ) 有問題。 你確定select2-search__field存在嗎?

請嘗試以下解決方案

您試圖將數據發送到 UI 上存在的錯誤元素select2-search__field 而不是我們需要識別//input[@class='select2-search__field']元素,然后我們可以發送數據進行搜索。

    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:\chromedriver.exe')

    # 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()
    driver.find_element_by_class_name("select2-search__field").click()

    driver.find_element_by_xpath("//input[@class='select2-search__field']").send_keys('Amsterdam')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM