2016-11-12 105 views
1

這是「按鈕,」我希望我的代碼點擊,其ID爲u可以看到的是:「SYI創建」 https://gyazo.com/0b03a884cb62227aeebb3dd82b1c67ffPython的硒找不到按鈕的「ID」點擊

這裏是我的代碼:

from selenium import webdriver 
from selenium.webdriver.common.by import By 
from time import sleep 



browser = webdriver.Chrome("C:/Users/sebastian/desktop/chromedriver.exe") 
browser.get('https://www.dba.dk/log-ind/?returnUrl=%2F') 

emailStr = "Censored" 
passwdStr = "Censored" 

def loginDBA(username, password): 
    email = browser.find_element_by_id('Email') 
    email.send_keys(username) 
    adgangskode = browser.find_element_by_id('Password') 
    adgangskode.send_keys(password) 

    login = browser.find_element_by_id('LoginButton') 
    login.click() 
loginDBA(emailStr, passwdStr) 




opretAnnonce = browser.find_element_by_id("syi-create") 
sleep(5) 
opretAnnonce.click() 

請注意,你不能運行腳本,因爲我「審查」了用戶名和密碼。所以它不會登錄,但不管怎樣都沒有必要。

當您登錄時,那個黃色按鈕是我想要按的那個。但正如你可能意識到的那樣,出於某種原因,它找不到按鈕。因此無法點擊它。

以下是錯誤代碼(:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"id","selector":"syi-create"} 
    (Session info: chrome=54.0.2840.71) 
    (Driver info: chromedriver=2.25.426923 (0390b88869384d6eb0d5d09729679f934aab9eed),platform=Windows NT 10.0.14393 x86_64) 

這非常具體的說,我不能找到的ID,這是非常奇怪的,因爲美國可以在這裏看到我所做的:https://gyazo.com/0b03a884cb62227aeebb3dd82b1c67ff 這裏是我的另一個搜索的按鈕的「ID」: https://gyazo.com/f4ab86efefc1bc420e71aeca93ed36ca

我在做什麼錯

+0

有什麼賭注,這是在iframe? – e4c5

+0

我沒有使用網絡語言的經驗,只是覺得我會說真的很快。而...什麼是iframe? –

+0

剛看了iframe,所以你說的是我試圖點擊圖像? 那麼,首先我怎麼才能找到真正的按鈕ID呢?我該如何檢查iframe是否在iframe中? –

回答

0

您可以使用XPath找到id元素,或者您也可以使用

sleep(10) 
opretAnnonce = browser.find_element_by_css_selector("#syi-create") 

或者

sleep(10) 
opretAnnonce = browser.find_element_by_xpath('//div[@id = "syi-create"]') 
+0

它沒有工作,我得到了同樣的錯誤,現在只是在#前面的ID。 –

+0

嘗試使用xpath –

+0

如果通過id查找元素不起作用,則使用包含該id的xpath查找它也不起作用。 –