2017-06-21 123 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