Selenium 在 PC 和 RPI 上的性能差异

Differences in performance of Selenium on PC and RPI

我在 PC 上开发了一些代码,用于检查特定博客上的点赞数 post。它在我的电脑上完美运行,它使用最新版本的 CHrome 和 ChromeDriver for Python.

但是,当我使用 chromium 将此代码传输到我的 RPI 时。它仍然可以运行,但找不到 PC 版本所具有的任何元素。

这是完全相同的网页,如果我手动检查元素在那里,但 RPI 上的代码找不到它。

这是否与 RPI 相对于我的 PC 或其他一些硬件相关问题的内存量有关?

我认为这无关紧要,但我要查找的元素是:

driver.find_elements_by_class_name('like-button.ignore-click.is-animated.has-label')

在 WordPress.com 个网站上。

这类似于这个问题:

但是,我有不同的代码在 rpi 和 pc 上运行良好,即使它们在 window

中不可见,也能找到元素

在您的代码块中,您试图通过 find_elements_by_class_name(classname)

传递多个 classes

根据 selenium.webdriver.common.by 实施的文档:

class selenium.webdriver.common.by.By
    Set of supported locator strategies.

    CLASS_NAME = 'class name'

所以,

  • 使用 find_element_by_class_name() 您将无法传递多个 class 名称。

You can find a detailed discussion in

实际上,在使用 like-button.ignore-click.is-animated.has-label 作为定位器时,您使用的是 .


解决方案

作为解决方案,您可以使用以下任一方法

  • 使用CSS_SELECTOR:

    driver.find_element_by_css_selector(".like-button.ignore-click.is-animated.has-label")
                      Note the added ^^^ . ^^^ character in the begining
    
  • 使用XPATH:

    driver.find_element_by_xpath("//*[@class='like-button ignore-click is-animated has-label']")