python - 如何模拟点击 "Next"直到结束?

标签 python selenium web web-scraping

我不确定如何模拟单击“下一步”,我当前的代码只会在第一个实例停止。我还创建了一个 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 循环中跳出,继续下一段代码。

引用资料:

  1. http://selenium-python.readthedocs.io/waits.html

关于python - 如何模拟点击 "Next"直到结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41425322/

相关文章:

python - scrapy 需要 python 2.7 但我已经有了

python - Tensorflow-gpu获取卷积算法失败

php - (PHP/Postgresql) 调用返回 void 的函数?

javascript - 为什么我的 AJAX 请求打开我的 PHP 文件,而不是像它应该的那样只返回响应文本?

python - 我如何在python中控制for循环的迭代

python - 移植使用 _multiprocessing 的 Python 2 代码

java - Selenium 脚本测试运行的 RateLimit 问题

c# - 无法使用带有 C# 的 Selenium 检查复选框控件

python - 将.crx加载到远程chrome Selenium python中

javascript - 我的网页如何判断用户是否放大了 View ?