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-selectors.
解决方案
作为解决方案,您可以使用以下任一方法 :
使用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']")
我在 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)
根据 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-selectors.
解决方案
作为解决方案,您可以使用以下任一方法
使用
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']")