3 回答
TA贡献1780条经验 获得超5个赞
你需要注意几件事:
当您使用Selenium-Python客户端时,
findElement()
这不是有效的代码行。相反,您需要使用以下任一方法:find_element_by_xpath()
find_element_by_css_selector()
linkText
仅接受文本。诱导
time.sleep(5)
会降低测试执行的性能。
解决方案
要click()
在带有文本的元素上作为적 금
,您必须诱导WebDriverWait并且element_to_be_clickable()
您可以使用以下任一Locator Strategies:
CSS_SELECTOR
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "ul.productSearchDiv li:nth-child(2) >a>span"))).click()
XPATH
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//ul[@class='productSearchDiv ']//li/a/span[text()='적 금']"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
浏览器快照:
TA贡献1830条经验 获得超3个赞
findElement
是 Java 语法,而不是 Python。此外,li
是一个标签,而不是文本,并且无论如何by_link_text
都不适用于标签。<span>
xpath
改为使用
driver.find_element_by_xpath('//li[.//span[.="적 금"]]')
TA贡献1829条经验 获得超7个赞
要单击选项卡,您需要在 xapth 下方诱导和使用WebDriverWait。element_to_be_clickable()
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
driver=webdriver.Chrome('./chromedriver.exe')
driver.get("https://www.kebhana.com/cont/mall/mall08/mall0805/index.jsp?_menuNo=62608")
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='productSDiv']//li//a[contains(@onclick,'spb_2812')]"))).click()
添加回答
举报