Python Selenium - 尝试按类名查找元素时出错

标签 python selenium

这是我试图抓取的网站中的元素示例。 它们都没有 id 或名称,它们只是有很长的垃圾名称,如下例所示。

<h1 class="product-name__item product-name__item--name" title="BOEUF HACHE MAIGRE 1 LB">BOEUF HACHE MAIGRE 1 LB</h1>

我尝试了两种方法,但遇到了 2 个不同的错误。

第一次尝试:

我尝试通过类名找到它。这会导致超时异常。

try:
element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CLASS_NAME, "product-name__item product-name__item--name"))

    )
    print(element.text)
finally:
    driver.quit()

第二次尝试:

我尝试通过css选择器找到它,因为我认为类名包含空格有问题。这导致了以下错误:TypeError: 'str' object is not callable

try:
element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located(By.CSS_SELECTOR("[class='product-name__item product-name__item--name']"))

    )
    print(element.text)
finally:
    driver.quit()

你有解决办法吗? 谢谢您,祝您有愉快的一天!

最佳答案

使用以下 css 选择器。

try:
  element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".product-name__item.product-name__item--name")))
  print(element.text)
except:
    driver.quit()

关于Python Selenium - 尝试按类名查找元素时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61511353/

相关文章:

Python:环境变量未更新

python - 如何将带有日期时间的 DataFrame 列拆分为两列 : one with dates and one with times of the day?

python - 如果第一个 XPath 匹配,如何从 bool 值 'break' XPath 中取出 "OR' ?

python - Django 保存并添加另一个行为修改

c# - MsTest.exe 未找到任何测试

python - python selenium 驱动程序中的 "Message: unknown error: cannot focus element"

c# - selenium Grid 和 C# 如何设置和运行

database - Selenium 从哪里获取数据来测试单元?

python - 如何在 PyCharm 中查找已知 Python 对象的类定义?

testing - 如何从使用自定义属性的 HTML 元素中获取文本?