我不确定如何模拟单击“下一步”,我当前的代码只会在第一个实例停止。我还创建了一个 for 循环,但它只会说对象不可迭代。任何修改我的代码的方法?
from selenium import webdriver
browser = webdriver.Firefox()
import time
browser.get('https://www.autocodes.com/obd-code-list/powertrain/1')
linkElem = browser.find_element_by_css_selector("#pag > a")
type(linkElem)
linkElem.click() # follows the "Next" link
最佳答案
试试下面的代码:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
browser = webdriver.Firefox()
import time
count = 0
browser.get('https://www.autocodes.com/obd-code-list/powertrain/1')
while(1):
try:
linkElem = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH, "//div[@id='pag']//a[contains(text(),'Next')]")))
except:
import traceback
traceback.print_exc()
print "last page reached."
break;
# type(linkElem)
count += 1
print "count " , count
linkElem.click() # follows the "Next" link
time.sleep(1)
代码不断检查Next
元素是否出现在无限while 循环
中。如果存在,请单击它。否则,打破循环。
注意:count
变量被添加为调试语句以了解循环计数。如果不需要,您可以删除与其相关的代码。
注意:同样,添加了traceback
来打印完整的trace。只是打印异常跟踪供您引用。
注意:break
关键字,在到达最后一页时打破无限循环,并从 while
循环中跳出,继续下一段代码。
引用资料:
关于python - 如何模拟点击 "Next"直到结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41425322/