2017-03-19 27 views
1

我想使用Python中的selenium登錄Discord,以便稍後可以運行一些搜索並返回數據。在Python中使用Selenium查找登錄按鈕ID

到目前爲止,這是我:

from selenium import webdriver 
browser = webdriver.Chrome(executable_path='C:\\xyz\\chromedriver_win32\\chromedriver.exe') 

browser.get('https://discordapp.com/login') 
username = browser.find_element_by_id("register-email") 
username.send_keys("[email protected]") 
password = browser.find_element_by_id("register-password") 
password.send_keys("password123") 

下一步將是與登錄按鈕提交ID和密碼,但我不知道如何找到名稱元素。

browser.find_element_by_name("login").click() 

如何以編程方式查找該元素?

+0

右鍵單擊頁面>檢查>獲取該元素的名稱 – ZdaR

+0

右鍵單擊似乎沒有啓用/允許在該網頁上 – ADJ

+0

嘗試用'CTRL + SHIFT + I',適用於google chrome mac – ZdaR

回答

1

它看起來不像登錄按鈕元素的名稱屬性等於'登錄',所以在這種情況下,您將無法使用您的browser.find_element_by_name("login").click()語句找到它。

如果您使用Google Chrome,則可以使用開發工具(Windows上的F12,我相信,Mac上的CMD + Shift + I)來查找DOM樹中的元素。如果它有一個名稱屬性,你可以在這裏找到它。在這種情況下,它不會,但我們可以右鍵單擊DOM樹中的元素,並可以提取另一種查找元素的方式,例如「複製XPath」或「複製選擇器」。

清理提取的XPath,你可以使用下面單擊元素:

browser.find_element_by_xpath("//*button[contains(., 'Login')").click()

0

如果您打開使用F12開發人員工具,你可以把鼠標巡洋艦上的元素在HTML和他們將在UI中突出顯示。

登錄按鈕具有類btn-primary

browser.find_element_by_class_name("btn-primary").click() 
相關問題