python - Selenium 在 PC 和 RPI 上的性能差异

标签 python selenium xpath css-selectors classname

我在 PC 上开发了一些代码,用于检查特定博客文章的点赞数。它在我使用最新版本的 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 网站上。

这与这个问题类似:

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

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

最佳答案

在您的代码块中,您尝试通过 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() 您将无法传递多个类名。

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

关于python - Selenium 在 PC 和 RPI 上的性能差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58910880/

相关文章:

python - 优化mysql多次更新

java - Selenium 3.5 IE sendKeys 通过 Selenium Hub 编码

php - 将元素与动态属性值相匹配

python - numpy.linalg.svd 不按降序返回西格玛

python - 在 Bokeh 中调整 matplotlib 标记大小?

java - 使用 Selenium Htmlunit Java 最终重定向 URL

Python selenium webdriver - 无法一次通过 xpath 单击元素

xml - 使用XPath在父节点中获取文本

python - 将 MySQL 数据库迁移到 Django 时出错。意外的主机名

python - 如何使用 selenium python 在 pre 标签内复制特定文本