网页我试图自动化包含100多个链接(教师姓名)的列表,单击其中加载在该教师下注册的学生列表。我的任务是单击每个链接以确保学生信息加载(在同一页面上),单击浏览器后退按钮,单击第二个教师姓名等,直到最后一个链接(教师姓名)结束。循环查找xpath元素,然后单击找到的每个元素
from selenium import webdriver
import time
driver=webdriver.Ie()
driver.get('I load my main page')
tablecontent=driver.find_elements_by_xpath("//table/tbody/tr/td/a") #see html code provided below
tablelen=len(tablecontent) #find number of links on main page.
#loop through each link
for i in range(2,tablelen):
driver.find_element_by_xpath("//table/tbody/tr[i]/td/a").click() #plug in i value to tr
time.sleep(2)
driver.back()
以上代码生成低于误差
Traceback (most recent call last):
File "C:/Python27/syn_xpath.py", line 14, in <module>
driver.find_element_by_xpath("//table/tbody/tr[i]/td/a").click()
NoSuchElementException: Message: Unable to find element with xpath == //table/tbody/tr[i]/td/a
如果我更换由tr[2]
tr[i]
(或括号内的任何整数值)时,它识别该元素并点击它。例如,driver.find_element_by_xpath("//table/tbody/tr[2]/td/a").click()
工作得很好。任何想法为什么通过i
(在for
循环中)传递整数值到tr
不起作用?
HTML代码:
<table>
<tr><td nowrap><b>Teacher</b></td><td nowrap><b>School</b></td></tr>
<tr><td><a href="/db/status.php?teacherid=1234">Teacher1</a></td><td>XYZ High School</td></tr>
<tr><td><a href="/db/status.php?teacherid=5678">Teacher2</a></td><td>ABC School</td></tr>
<tr><td><a href="/db/status.php?teacherid=1111">Teacher3</a></td><td>International School</td></tr>
请格式化,以便您的代码显示为代码 – Gary99