【问题标题】:Unable to locate a span class by python无法通过python找到跨度类
【发布时间】:2020-05-26 06:16:44
【问题描述】:

我有一个跨度类属性,我需要单击它并将值传递给它。

下面是我的跨度类:

<span class="input-group-addon-transparent icon-search sysparm-search-icon"></span>

请帮帮我。提前致谢。

【问题讨论】:

  • 请添加一些您自己的代码作品以便重现。

标签: python selenium selenium-webdriver automated-tests


【解决方案1】:

在不知道站点的完整 HTML 的情况下,您可以使用 find_element_by_css_selector 获得与这些类匹配的第一个跨度:

selector = "span.input-group-addon-transparent.icon-search.sysparm-search-icon"
element = driver.find_element_by_css_selector(selector)
element.click()
element.sendKeys("value")

或者等待可点击状态:

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

selector = "span.input-group-addon-transparent.icon-search.sysparm-search-icon"
element = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, selector)))
element.sendKeys("value")

driver 是您的 Selenium webdriver 对象

【讨论】:

    【解决方案2】:

    您使用类名来获取该 web 元素。

     webele=  driver.find_element_by_class_name("input-group-addon-transparent icon-search sysparm-search-icon")
    webele.click();
    webele.sendkeys("any string/number")
    

    driver.find_element_by_xpath("//*[contains(@class,'search-icon')]
    

    //然后是剩下的代码

    在点击按钮之前使用网络驱动程序等待

    WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.XPATH, "XPATH")) 
    

    【讨论】:

      【解决方案3】:

      使用任何浏览器控制台查找跨度的 xpath,然后尝试使用下面的代码单击并将值传递给它

      span = find_element_by_xpath('''the x_path of the class''').click()
      span.sendKeys('''value to be passed''')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-18
        • 1970-01-01
        • 1970-01-01
        • 2018-11-05
        • 1970-01-01
        • 2019-05-06
        相关资源
        最近更新 更多