我对站点棱镜上的两个映射有疑问

I have doubts about two mappings on the site-prism

我不想对以下元素使用 xpath。

元素 :img_login, :xpath, '//[@id="main-wrapper"]/div/section/div/div[2]/div/div/div[1] /img' 元素 :msg_login_senha_invalidos, :xpath, '//[@id="main-wrapper"]/div/section/div/div[2]/div/div/div[2]/div/p '

它们在页面上如下: 元素 img_login

<div class="sc-jRQAMF eRnhep">
<img src="https://quasar-flash-staging.herokuapp.com/assets/login/flashLogo-3a77796fc2a3316fe0945c6faf248b57a2545077fac44301de3ec3d8c30eba3f.png" alt="Quasar Flash">
</div>

element msg_login_senha_invalidos
<p class="MuiFormHelperText-root MuiFormHelperText-contained Mui-error MuiFormHelperText-filled">Login e/ou senha inválidos</p>

您询问了多个关于从使用 XPath 转换为某种其他类型 select 或在使用 Site-Prism 时的问题。 Whosebug 旨在成为您学习和提高技能的地方——而不仅仅是让其他人来完成您的工作。看起来您最好还是阅读 CSS 以及如何将其用于 select 元素。另请注意,使用 XPath 本身并没有什么特别的错误,这只是新手测试和 selecting 页面上的元素倾向于使用它的方式(只需复制完全指定的 selector 从他们的浏览器)导致 selector 过于具体,因此很脆弱。 CSS select 或可用选项是一个很好的网站供您了解 https://flukeout.github.io/ - and you can look at the built-in selector types provided by Capybara at https://github.com/teamcapybara/capybara/blob/master/lib/capybara/selector.rb#L18

在您当前的情况下,以下可能有效,但对于 HTML,您已经提供了所有可以说的内容,即它们将匹配显示的元素,但它们也可能匹配其他元素,这会给您带来歧义元素错误。

element :img_login, :css, 'img[alt="Quasar Flash"]' # CSS attribute selector
element :msg_login_senha_invalidos, :css, 'p.Mui-error', text: 'Login e/ou senha inválidos' # CSS class selector combined with Capybara text filter