程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用 Selenium 获取 XPATH 和 CSS SELECTORS 的最佳方法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用 SELEnium 获取 XPATH 和 CSS SELECTORS 的最佳方法?

开发过程中遇到使用 SELEnium 获取 XPATH 和 CSS SELECTORS 的最佳方法的问题如何解决?下面主要结合日常开发的经验,给出你关于使用 SELEnium 获取 XPATH 和 CSS SELECTORS 的最佳方法的解决方法建议,希望对你解决使用 SELEnium 获取 XPATH 和 CSS SELECTORS 的最佳方法有所启发或帮助;

你们知道使用 SELEnium 获取抓取网站的 XPATH 和 CSS 选择器的最佳方法是什么?

有人建议我使用这些 XPATH 和 CSS SELECTORS 作为我正在做的练习的参数:

wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,"input[placeholder='Search']"))).send_keys('Tech')
wait.until(EC.element_to_be_clickable((By.XPATH,"//button[text()='Cancel']/.."))).click()

这些参数非常适合练习。但是,我不确定如何获取(或“构建”)这些参数...... 如果我使用 Chrome 的 Inspect > 右键单击​​ > copy XPATH 或 copy SELEctor,我会得到一些非常不同的参数,这些参数似乎也不起作用,而且 SELEnium 似乎找不到。

#search-bar
//*[@ID="app-container"]/div/section/div/div/div[2]/button

有没有一种工具或技术可以像我的第一个例子那样获得更好的 XPATH 或 CSS SELECTORS?

解决方法

我喜欢@JD2775 分享的资源。它们有助于让您开始了解如何构建和理解 xpaths 和 css 选择器。当您对此感到满意时,您可以制定选择器策略。希望以下内容至少对您有所帮助。

什么是“好的”xpath 或 css 选择器?

  • 选择器应该可靠且唯一地标识目标元素。
    • 例如,如果一个元素的类在页面上多次出现,不要只使用这个类来标识该元素。这是您的选择器最基本的要求
  • 选择器不应容易出现“不稳定”——即,由于与测试无关的更改而导致的错误失败。
    • 通过尽可能少地依赖 DOM 来识别您的元素来实现这一点。例如,如果两者都用于唯一标识元素,则 //*[@id="app-container"]//button 应优先于 //*[@id="app-container"]/div/section/div/div/div[2]/button。或者,如您所见,"//button[text()='Cancel']/.." 是更好的选择。
  • 可能不太重要,但仍然值得虑:从选择器中了解哪个元素被抓取有多容易?

一些最佳做法

  • 如果您正在与开发团队合作并因此可以访问您正在测试的应用程序的源代码,请实施仅用于自动化的自定义 HTML 属性,该属性具有唯一标识和描述元素的值.在你的测试代码中,你可以用这样的一行来标识你需要的每个元素:
@H_606_7@my_field = driver.find_elemenT_By_css_SELEctor('input[data-e2e-attribute="aCertainField"]')`
  • 将您选择的元素组织成一个 Page Object Model,它将网络元素的定义抽象到一个位置。因此,您可以在测试中的任何位置使用这些元素而无需定位它们,并且在必要时更容易对选择器进行更改
,

您是正确的,右键单击并复制 Xpath 是获取 Xpath 的糟糕方法。你只剩下一个又长又脆的选择器。建立自己的要好得多。一旦掌握了窍门,就可以很容易地开始构建自己的 CSS 和 Xpath 选择器。其中一些变得复杂,但如果您不断练习和寻找解决方案,您会变得越来越好。

问题是在这样的论坛中很难解释如何做到这一点。最好的办法是在 YouTube 上播放一些关于如何为 SELEnium 创建 Xpath 和 CSS 选择器的视频。这是我刚刚为 Xpath 找到的一个不错的:

https://www.youtube.com/watch?v=3uktjWgKrtI

这遵循我在 Chrome Dev Tools 中使用的方法并使用内置的 Find 窗口(无插件)

这是我过去用于 Xpath 和 CSS 选择器的一个很好的备忘单

https://www.automatetheplanet.com/SELEnium-webdriver-locators-cheat-sheet/

祝你好运

大佬总结

以上是大佬教程为你收集整理的使用 Selenium 获取 XPATH 和 CSS SELECTORS 的最佳方法全部内容,希望文章能够帮你解决使用 Selenium 获取 XPATH 和 CSS SELECTORS 的最佳方法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。