2016-03-08 54 views
0

民间,在python中增加X路径python

我是新的python硒。我在下面的XPath递增TR []值

print driver.find_element_by_xpath("//*[@id='p7']/div[1]/div[3]/div[1]/table[4]/tbody/tr[5]/td[3]") 

假设:

1. for i in range(1,10): 
    print driver.find_element_by_xpath("//*[@id='p7']/div[1]/div[3]/div[1]/table[4]/tbody/tr[i]/td[3]") 

2.for i in range(1,10): 
    print driver.find_element_by_xpath("//*[@id='p7']/div[1]/div[3]/div[1]/table[4]/tbody/tr[str(i)]/td[3]") 

我的假设都不是working.Please分享清晰的逻辑你的建议。

回答

1

您需要使用字符串格式化让你的Python变量到XPath表达式字符串:

driver.find_element_by_xpath("//*[@id='p7']/div[1]/div[3]/div[1]/table[4]/tbody/tr[%d]/td[3]" % i) 

或者接近它有点不同,找到所有tr S,切片和循环通过他们:

rows = driver.find_elements_by_xpath("//*[@id='p7']/div[1]/div[3]/div[1]/table[4]/tbody/tr")[1:10] 
for row in rows: 
    print(row.find_elements_by_tag_name("td")[2].text) 
+0

是否有你选择在此实例中使用'%'样式格式的原因? – gtlambert

+0

@gtlambert没有什么特别的理由,'format()'可以(也许应该,因为它是一种“新”的非遗留方式)可以被使用,尽管我想我会留下原样的答案,无论格式化风格如何,答案仍然有效。谢谢! – alecxe

+0

@alexce当然 - 我只是有兴趣的情况下,有一个特定的原因 – gtlambert