【问题标题】: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''')