2017-06-21 10 views
3

セレンでプログラムを作成して学校のウェブサイトにアクセスし、サインインしてCSSセレクターでテキスト全体を印刷して印刷します。その後、利用可能なすべての試験が印刷されます。ただし、すべての試験の横にダウンロードリンクがあり、試験名で入力を作成し、その試験に接続された特定のダウンロードボタンをクリックするようにしています。入力に基づいてリンクをクリックするにはseleniumを使用してください[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で分詞、アクセント記号などを使用しないでください!テキスト入力の注意が複数回表示される – Wonka

関連する問題