2016-03-08 55 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