2017-02-28 96 views
1

最後,我正在研究一個使用庫「selenium」的Python項目。該項目應根據所獲得的用戶名輸入密碼。我的問題是我不知道如何從文本框中獲取數據。 例如,如果我想在「Facebook」上使用該項目,首先我必須得到用戶輸入的電子郵件(有點像把它作爲字符串變量),然後我必須輸入正確的密碼(我知道該怎麼做)。我的主要問題是命令「.text」不起作用,因爲電子郵件沒有在文本框的任何屬性中找到,所以我不能調用它。 請問有人有解決方案嗎?Python - 通過Selenium獲取文本框輸入數據

目前的線路有:

driver = webdriver.Chrome('C:\\Users\User\Desktop\chromedriver.exe') 
driver.get('https://www.facebook.com/stype=lo&jlou=AfdFutu6bihEQajPctMRwj2ySoaIGAE71YZ0aBZe9FYV4Xd2XuZ3SGth5wernWcF7s4pSvZH5W6f0ed2BfafHrkbupDcW4GDQECBTnhQID1FQ&smuh=4370&lh=Ac_eTqeC_DcDMq9f') 
mail = driver.find_element_by_id('email').text 

的問題是,目前的「郵件」的變量是一個空字符串,因爲Facebook網站的電子郵件文本框是空的,因爲它是等待客戶端輸入在他的電子郵件中。我試圖在輸入後輸入客戶的電子郵件。

在此先感謝!

+0

嗨,請提供您目前擁有的代碼。 – Daniel

+0

驅動= webdriver.Chrome( 'C:\\用戶\用戶\桌面\ chromedriver.exe')driver.get('https://www.facebook.com/?stype=lo&jlou=AfdFutu6bihEQajPctMRwj2ySoaIGAE71YZ0aBZe9FYV4Xd2XuZ3SGth5wernWcF7-s4pSvZH5W6f0ed2BfafHrkbupDcW4GDQECBTnhQID1FQ&smuh=4370&lh=Ac_eTqeC_DcDMq9f ')mail = driver.find_element_by_id('email')。text – Barnash

回答

1

您可以從input領域獲得價值僅僅作爲

email_input = driver.find_element_by_xpath('//input[@type="email"]') 
print(email_input.get_attribute('value')) 

更新

如果你想後輸入用戶的電子郵件input獲取文本:

driver = webdriver.Chrome('C:\\Users\User\Desktop\chromedriver.exe') 
driver.get('https://www.facebook.com/stype=lo&jlou=AfdFutu6bihEQajPctMRwj2ySoaIGAE71YZ0aBZe9FYV4Xd2XuZ3SGth5wernWcF7s4pSvZH5W6f0ed2BfafHrkbupDcW4GDQECBTnhQID1FQ&smuh=4370&lh=Ac_eTqeC_DcDMq9f') 
email = input("Please enter your Email: ") 
email_input = driver.find_element_by_xpath('//input[@type="email"]') 
email_input.send_keys(email) 
print(email_input.get_attribute('value')) # or just print(email) 

。注意,用戶應該輸入email的值到命令行,但不要輸入到瀏覽器的輸入字段

+0

Facebook的電子郵件文本框沒有任何名爲「value」的屬性... – Barnash

+0

您是否試過我的代碼? – Andersson

+0

''這就是它的樣子。你爲什麼認爲沒有「價值」屬性? – Andersson