我有这个html xml路径:
"//*[@id="example"]/tbody/tr[2]/td[1]"
它必须由我的find_element()算法处理为字符串 但是我需要迭代tr [2](例如tr [2],tr [3],tr [4] ...),以便我的网络抓取算法可以扩展html表中的可点击按钮。
要实现这一目标的策略/实现有哪些?
(我正在将Selenium python库用于webscraper)
答案 0 :(得分:0)
如果您想遍历它,
只需像这样使xpath动态化:
我假设您有5行。
for i in range(5):
driver.find_element_by_xpath("//*[@id="example"]/tbody/tr['"+i+"']/td[1]").click()
或者使用WebDriverWait,它将是:
wait = WebDriverWait(driver,30)
for i in range(5):
wait.until(EC.element_to_be_clickable((By.XPATH, "//*[@id="example"]/tbody/tr['"+i+"']/td[1]"))).click()
请注意,以防万一您必须导入以下内容:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
答案 1 :(得分:0)
您可以使用以下代码获取所有所需元素(行)的集合:
def extractFeatures(self,inputFile):
self.openSMILEsettings.append("-I " + inputFile)
outputFile = os.path.dirname(inputFile) + "/featuresOf_" +os.path.basename(inputFile)[0:-3] + "arff"
self.openSMILEsettings.append("-O " + outputFile)
print self.openSMILEsettings[2]
print ' '.join(self.openSMILEsettings)
# print subprocess.check_output(['SMILExtract'] + self.openSMILEsettings)
extractFeatures("/media/USERNAME/MountPOINT/Dir1/Dir2/Dir3/02003_SomeSesssionNumber1_and2_2323123/audioFile.wav")
然后,您可以遍历元素集合并执行所需的操作。