javascript - 如何在使用python selenium通过id调用find元素之前解析id号?
问题描述
我正在尝试使用 python selenium 自动执行linkedin 连接请求,但问题是每次 ember number 的值都在不断变化。当我尝试复制按钮的 id 它一次给出某个字符串 // [@id="ember418"] 其他时间给出 // [@id="ember502"] 所以数字不断变化有没有办法找到这个数字在传递 id 值之前?
这是我正在处理的完整元素树
<div data-test-modal="" role="dialog" tabindex="-1" class="artdeco-modal artdeco-modal--layer-default send-invite" size="medium" aria-labelledby="send-invite-modal">
<span class="a11y-text">Dialog content start.</span>
<button data-test-modal-close-btn="" aria-label="Dismiss" id="ember414" class="artdeco-modal__dismiss artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--2 artdeco-button--tertiary ember-view"> <li-icon aria-hidden="true" type="cancel-icon" class="artdeco-button__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" data-supported-dps="24x24" fill="currentColor" class="mercado-match" width="24" height="24" focusable="false">
<path d="M13.42 12L20 18.58 18.58 20 12 13.42 5.42 20 4 18.58 10.58 12 4 5.42 5.42 4 12 10.58 18.58 4 20 5.42z"></path>
</svg></li-icon>
<span class="artdeco-button__text">
</span></button>
<div id="ember415" class="artdeco-modal__header ember-view">
<h2 id="send-invite-modal">
Your invitation is almost on its way
</h2>
</div>
<div id="ember416" class="artdeco-modal__content ember-view">
<!----><!---->
<p class="display-flex">
<li-icon aria-hidden="true" type="success-pebble-icon" class="connect-button-send-invite__success-icon mr1" size="large"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" data-supported-dps="24x24" fill="currentColor" class="mercado-match" width="24" height="24" focusable="false">
<path d="M12 2a10 10 0 1010 10A10 10 0 0012 2zm-1.25 15L7 13.25l1.41-1.41L10.59 14l4.84-6H18z"></path>
</svg></li-icon>
<span class="flex-1">
You can add a note to personalize your invitation to <strong>Zoe Yang</strong>.
</span>
</p>
<!---->
</div>
<div id="ember417" class="artdeco-modal__actionbar text-align-right ember-view">
<button aria-label="Add a note" id="ember418" class="mr1 artdeco-button artdeco-button--muted artdeco-button--3 artdeco-button--secondary ember-view"><!---->
<span class="artdeco-button__text">
Add a note
</span></button>
<button aria-label="Send now" id="ember419" class="ml1 artdeco-button artdeco-button--3 artdeco-button--primary ember-view"><!---->
<span class="artdeco-button__text">
Send
</span></button>
</div>
<span class="a11y-text">Dialog content end.</span>
</div>
我正在尝试通过查找 id 单击添加注释和发送按钮
当我打电话时
connect = more = driver.find_element_by_id("""ember418""").click()
它会点击那个按钮
但问题是每次刷新或重新单击时,余烬编号都会不断变化
NoSuchElementException:消息:没有这样的元素:无法找到元素:{“method”:“id”,“selector”:“ember524”}(会话信息:chrome = 90.0.4430.93)
所以我想在通过 id 找到元素之前获取这个 ember 编号
有没有办法做到这一点?任何帮助将不胜感激
解决方案
试试这个 xpath .//button[@aria-label='Add a note']
推荐阅读
- facebook - 插入 Facebook 页面插件的代码时收到错误“无法侦听未定义的元素”
- macos - dtrace 中来来去去的 pid 提供者匹配进程
- r - 在 R 中将 sf 包中的函数应用于每一行
- android - 为 Android 实施应用内购买真的这么复杂吗?
- python - 无法访问主目录中的文件(Jupyter Notebook)
- php - 如何在树枝中组合变量
- java - Parcelable 仅在某些手机中遇到 IOException 写入可序列化对象
- javascript - 单击后添加内容高度时自动展开液体滑块高度
- mysql - Laravel Eloquent 的内部连接错误
- r - 如何找到曲线和圆的交点?