selenium - 如何定位这个特定元素?
问题描述
所以我在一些自动化工作中使用了 selenium ide,并且玩得很开心。但是最近,当我在https://pay.google.com/gp/w/home/paymentmethods并尝试单击显示“添加付款方式”的按钮时,selenium 根本找不到它。
我尝试过的事情:
CSS.finder:
css=.b3id-payment-method-add-instrument-link span
Xpath:idRelative
xpath=//body[@id='iframeBody']/div[3]/div[2]/div/div[4]/a/div/div/span
Xpath:位置
xpath=//div[4]/a/div/div/span
xpath:innerText
xpath=//span[contains(.,'Add payment method')]
即使我记录点击次数,selenium ide 也会记录类似
select frame index=0
click css=.b3id-payment-method-add-instrument-link span
这也不起作用
我应该怎么做才能找到这个特定的按钮?
解决方案
<iframe frameborder="0" src="about:blank" id="mainWidget_:0Iframe" name="mainWidget_:0Iframe" style="border: 0px; vertical-align: initial; display: block; width: 100%; min-height: calc((100vh - 69px) - 113px); position: static; top: auto; visibility: visible; z-index: auto; background-color: inherit; height: 510px; left: auto; opacity: 1; transition: all 0s ease 0s;" title=""></iframe>
您的元素在 iframe 切换到它。
<div class="b3id-info-message-html b3-info-message-html" data-was-visible="true"><span data-was-visible="true">Add payment method</span></div>
一个简单的 CSS 选择器将是
.b3id-info-message-html.b3-info-message-html
推荐阅读
- java - 建立在詹金斯上失败,因为声纳分析失败
- java - 如何在 Java Spark 中使用 foreachBatch() 写入 Cassandra?
- security - 移动应用究竟是如何通过 PKCE 实现授权码流的?
- database - 将“postgres”用户所有权更改为另一个用户
- scala - Scala Cats 使用 Ior 累积错误和成功
- excel - 非相邻单元格作为数组函数的输入(MIN 和 ISBLANK)
- r - mutate_at 和 case_when 语句
- python - 使用python向具有不同文件附件的不同收件人发送电子邮件
- node.js - 推送通知 Ionic
- javascript - 如何将此箭头函数转换为普通函数表达式以帮助我更好地理解它