python - Python Selenium 通过 CSS 匹配文本获取元素
问题描述
嗨,我不知道如何通过 CSS 获取元素并与文本匹配。我知道它可以用 Xpath 完成,但我宁愿使用 CSS。
<div class="button-face">
<div class="button-face-caption"> Text I want to find 1</div>
</div>
<div class="button-face">
<div class="button-face-caption"> Text I want to find 2</div>
</div>
所以在 CSS 中会是这样的......
driver.find_element_by_css('div.button-face-caption')
但是如何添加文本匹配呢?我试过了contains
,innerText
但似乎都没有。
解决方案
作为解决方法,您可以创建自己的函数
def find_by_css(selector, text=''):
return [element for element in driver.find_elements_by_css_selector(selector) if text in element.text][0]
然后你可以称它为
find_by_css('div.button-face-caption') # search only by CSS-selector
或者
find_by_css('div.button-face-caption', 'Text I want to find 2') # search by CSS + text
推荐阅读
- linux - 如何在linux中配置连接到usb的调制解调器?
- ios - macbook m1中没有发生这样的模块'firebase'错误
- vba - 打印为 PDF 时从 Excel 工作表重命名 Word 宏
- javascript - Dash React 下拉组件:无法从浏览器控制台打开
- c# - json .net 5 blazor中的日期时间空序列化如何
- reactjs - 如何在 React 的 React.createElement() 中定义 img 标签?
- python - 为什么我会收到此“'builtin_function_or_method' 对象没有属性 'choice'”错误?
- vuejs3 - 在Vuejs3中如何在CoreUI中单击关闭图标时禁用或关闭模式
- apache-kafka - 卡夫卡经纪人倒闭
- reactjs - 如何在玩笑测试中找到 svg?