如何过滤具有相同类的元素?
<html>
<body>
<p class="content">Link1.</p>
</body>
</html>
<html>
<body>
<p class="content">Link2.</p>
</body>
</html>
最简单的方法是使用find_element_by_class_name('class_name')
根据HTML:
<html>
<body>
<p class="content">Link1.</p>
</body>
<html>
<html>
<body>
<p class="content">Link2.</p>
</body>
<html>
两(2)
因此,要过滤具有相同类别的元素,即
内容
,并创建一个列表,您可以使用以下任一定位器策略:
>
使用
class_name
:
elements = driver.find_elements_by_class_name("content")
使用
css\u选择器
:
elements = driver.find_elements_by_css_selector(".content")
使用
xpath
:
elements = driver.find_elements_by_xpath("//*[@class='content']")
理想情况下,要单击该元素,您需要引导WebDriverWait查看所有元素的可见性()
,您可以使用以下任一定位器策略:
>
使用CLASS_NAME
:
elements = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CLASS_NAME, "content")))
使用CSS_SELECTOR
:
elements = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, ".content")))
使用XPATH
:
elements = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//*[@class='content']")))
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
您可以在以下内容中找到一些相关讨论:
您可以使用“按类查找元素”名称,尝试使用class=“content”
获取所有元素的列表:
a = driver.find_elements_by_class_name("content")
然后你可以点击你正在寻找的链接。
我试图自动登录到网站https://opensource-demo.orangehrmlive.com/web/index.php/auth/login使用硒通过它给出了一个错误 selenium.common.exceptions.NoSuchElementException: 消息: no suchElement: 无法找到元素: {“method”:“css selector”,“selec
问题内容: 我有一个React组件。一些元素将通过子元素插入。其中一些元素将具有特定的类名。如何在最外层的Component中获得这些DOM节点的列表? 我想知道的是,在我的组件中插入了多少个类名称为“ snap”的元素。 问题答案: 您可以使用。即使文档鼓励使用 ref ,我们也要看看它是如何工作的: findDOMNode() 如果此组件已安装到DOM中,则将返回相应的本机浏览器DOM元素。此
问题内容: 我正在将selenium与python配合使用,现在我想按其ID名称的一部分来定位元素,该怎么办? 例如,现在我已经找到了一个ID为 coption5的商品 : 无论如何,我只能使用 coption 来定位此元素吗? 问题答案: 要查找您所在的元素: 要仅通过使用 coption 来定位此元素,可以使用以下定位器策略之一: 使用和: 使用和: 使用和(开头为通配符): 使用和(包含通配
问题内容: 我无法使用解析具有属性的元素。代码看起来像这样 脚本完成后的同一行出现错误。 如何摆脱这个错误? 问题答案: 你可以使用BS3优化搜索以仅找到具有给定类的那些div:
问题内容: 我正在寻找网站。在检查元素中看到以下内容: 需要获取并按标题单击元素。像这样: 但是通过标题。 问题答案: 就像巴拉克·马诺斯(Barak Manos)所说,答案是: 以[0]结尾的情况是列表。
我正在编写一个Python程序,该程序使用Selenium导航到高级搜索页面上的搜索框中并在搜索框中输入信息。本网站使用 Javascript,每次加载网站时,每个搜索框的 ID 和名称都会略有变化,但类名保持不变。类名经常被重用,所以我的目标是使用然后通过该列表编制索引。 例如,一个框的类名是 ,但我不能使用它,因为 selenium 认为它是一个复合类名并抛出一个错误。如果我只使用它的一部分,