2017-06-21 51 views
3

我已經做了一個硒程序去我的學校網站,登錄,並用CSS選擇器獲取整個文本並打印出來。然後打印出所有可用的考試。但是,每個考試旁邊都有一個下載鏈接,我試圖使用考試名稱創建一個輸入,然後讓硒單擊連接到該考試的特定下載按鈕。使用硒點擊一個基於輸入的鏈接[python]

我不知道關於HTML的很多內容,所以我會盡力讓我儘可能清楚。

這裏是代碼和一些照片:

from selenium import webdriver 

browser = webdriver.Chrome('/usr/local/bin/chromedriver') 
browser.get('https://minatentor.hv.se/minatentor/') 

username = browser.find_element_by_css_selector('#userNameInput') 
password = browser.find_element_by_css_selector('#passwordInput') 

username.send_keys(r"my_username") 
password.send_keys('my_password') 

password.submit() 

tentor = browser.find_element_by_css_selector('#examTable > tbody') 
print(tentor.text) 
browser.close() 

這是該網站。我使用CSS選擇器來獲取這些文本並將其打印出來('#examTable > tbody')。

This is how the website looks.

這是它打印的外殼。

enter image description here

這是檢查外觀。

enter image description here

我用<tbody>的CSS選擇器獲得的全部文本。每個<tr>...</tr>是在圖片上標記的一行。 「Hämta」表示瑞典語下載,這是下載按鈕。

我希望能夠寫入一個帶有課程名稱(圖片中的「Kursnamn」)的輸入,並讓硒按下與該課程名稱關聯的下載按鈕。就像這樣:

enter image description here

這可能嗎?我希望我儘可能清楚!

回答

4

無法測試原因沒有HTML,但它看起來像這樣。

s = raw_input("Kursnamn?") 
download_item = browser.find_element_by_xpath('//tr[contains(text(), '+s+')]//a[@href]') 

然後

download_item.click() 
+0

謝謝,它的工作!奇怪的是,它沒有與課程名稱「GRUNDLÄGGANDEREDOVISNING」合作,但課程代碼爲「GLR100」。 –

+0

是的,先生,請注意這種字符,不要在XPATH中使用diaeresis,重音符號等!與文字輸入的護理出現多次 – Wonka