【问题标题】:Using CSS selector for find element with multiple class in Selenium in Python在 Python 中的 Selenium 中使用 CSS 选择器查找具有多个类的元素
【发布时间】:2021-05-28 16:38:00
【问题描述】:
我想用 find_elements_by_css_selector(...) 在下面找到元素,但它有多个类 artdeco-modal、artdeco-modal--layer-default 、ip-fuse-limit-alert。
我使用 Selenium IDE 收集 x-path、css 选择器,但效果不佳。那么我该如何手动使用呢?这个元素的确切 css 选择器是什么?
<div data-test-modal="" role="dialog" tabindex="-1" class="artdeco-modal artdeco-modal--layer-default ip-fuse-limit-alert" size="small" aria-labelledby="ip-fuse-limit-alert__header">
【问题讨论】:
标签:
python
selenium
css-selectors
selenium-chromedriver
selenium-ide
【解决方案1】:
使用任何 css 选择器。 classname 或 tagname[attributename='attributevalue']
div.artdeco-modal.artdeco-modal--layer-default.ip-fuse-limit-alert
或
div[aria-labelledby='ip-fuse-limit-alert__header']
也可以使用多个属性
div.artdeco-modal.artdeco-modal--layer-default.ip-fuse-limit-alert[aria-labelledby='ip-fuse-limit-alert__header']
您也可以使用xpath 来识别元素。
//div[@class='artdeco-modal artdeco-modal--layer-default ip-fuse-limit-alert']
或者
//div[@aria-labelledby='ip-fuse-limit-alert__header']