【问题标题】:How to find the element using css-selector through Selenium如何通过 Selenium 使用 css-selector 查找元素
【发布时间】:2020-06-18 21:43:39
【问题描述】:
  1. 此代码需要一个 css-selector,x-path 可用
  2. 下面是x路径如:

    //div[@class='item-display-name' and text()='edit']
    

元素的HTML:

 <div class="item-display-name">edit</div>

【问题讨论】:

  • 没有 css 选择器可以让您选择基于 innerHTML 的元素。但是,您可以按类名选择所有元素并使用 JavaScript 检查 innerHTML 是否与您的字符串匹配,如此处所述stackoverflow.com/a/4812052/12690946

标签: selenium selenium-webdriver css-selectors


【解决方案1】:

要定位您需要为visibility_of_all_elements_located() 诱导WebDriverWait 的元素,您可以使用以下基于Locator Strategy

element = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "div.item-display-name")))

注意:您必须添加以下导入:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

更新

根据您的评论,您不能在 中包含文本 edit。您可以在以下位置找到详细讨论:

【讨论】:

  • 我还想在选择器中包含文本“edit”,对于这个 css-selector 还有 7 个结果。
  • @nikhilcodes 查看答案更新并让我知道状态。
  • 如何将此xpath-- "//*[contains(text(),'$type')] 转换成Selenide css 选择器
  • @nikhilcodes 似乎是一个不同的问题。随意根据您的新要求提出新问题。 Stackoverflow 贡献者将很乐意为您提供帮助。
猜你喜欢
  • 2020-05-02
  • 2023-03-16
  • 2020-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-19
  • 1970-01-01
相关资源
最近更新 更多