硒在PC和RPI上的性能差异

2024-09-29 00:22:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我在我的电脑上开发了一些代码,用于检查某个博客帖子上的赞数。它完美地工作在我的PC上,这是使用最新版本的CHrome和ChromeDriver for Python

但是,当我使用chromium将此代码传输到我的RPI时。它仍然运行,但没有找到任何元素的版本在电脑上

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

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

我认为这不重要,但我想找到的要素是:

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

在WordPress.com网站上

这类似于这个问题:

Selenium Error: element not visible (different behaviour on two computers)

但是,我有不同的代码,可以在rpi和pc上正常运行,即使元素在窗口中不可见,也可以找到它们


Tags: 内存代码版本元素网页for手动chrome
1条回答
网友
1楼 · 发布于 2024-09-29 00:22:56

在代码块中,您试图通过^{}传递多个类

根据^{}实现的文档:

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

    CLASS_NAME = 'class name'

所以

  • 使用find_element_by_class_name()将无法传递多个类名

You can find a detailed discussion in Invalid selector: Compound class names not permitted using find_element_by_class_name with Webdriver and Python

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


解决方案

作为解决方案,您可以使用以下Locator Strategies之一:

  • 使用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']")
    

相关问题 更多 >