我有一个动态表,从1到5一次显示5行。如果要查看第6行,则必须单击下一步。单击它后,该表将刷新5行并显示6至10行。
我正在尝试编写一个脚本,以查看表中的特定列。它会在该列的每一行中找到所有ID号。然后,它在同一目录中的txt文件中查找。如果ID号/数字与txt文件中的数字匹配,将单击一个与ID号相对应的复选框。
由于网站设计的原因,我必须创建一个循环,其中说:“如果该页面上有ID号,请勾选它。如果没有,请单击下一步按钮并检查下一页,依此类推。 。”
i = 1
while i < 6:
ID = browser.find_element_by_xpath(before_xpath + str(i) + after_xpath).get_attribute('innerHTML')
if ID in open('ID_NUMBERS.txt').read():
tick = browser.find_element_by_xpath(before_tick + str(i) + after_tick)
tick.click()
i += 1
break
if ID not in open('ID_NUMBERS.txt').read():
next_page = browser.find_element_by_xpath(skip_page)
next_page.click()
time.sleep(20)
i += 1
continue
我已经运行了几次。实际上,我得到了最初获得的结果,但是由于某种原因,它现在无法正常工作。目前,它单击了下一个按钮5次,然后再转到代码的下一部分。当应该选择复选框时,它会跳过txt文件中的ID号。
答案 0 :(得分:0)
我已经解决了问题。我现在遇到的唯一问题是代码的执行速度非常慢(在代码中使用time.sleep(#)的情况下。我现在试图弄清楚如何删除它们并改用webdriverwait。 / p>
i = 1
while i < 6:
time.sleep(4)
refID = browser.find_element_by_xpath(before_xpath + str(i) + after_xpath).get_attribute('innerHTML')
if str(refID) in open('ID NUMBERS.txt').read():
tick = browser.find_element_by_xpath(before_tick + str(i) + after_tick)
tick.click()
break
time.sleep(4)
i += 1
time.sleep(4)
if i == 5:
refID = browser.find_element_by_xpath(before_xpath + str(i) + after_xpath).get_attribute('innerHTML')
time.sleep(4)
if str(refID) in open('ID NUMBERS.txt').read():
tick = browser.find_element_by_xpath(before_tick + str(i) + after_tick)
tick.click()
break
time.sleep(4)
i = 1
next_page = browser.find_element_by_xpath(skip_page)
next_page.click()
time.sleep(4)