我在表中单击icon/link
时遇到问题。find_element_by_xpath
和find_elements_by_Xpath
我都试过了,但都没用。由于找不到元素,我遇到了一些问题,所以我不得不等待。
我已经突出显示了"表"行中的图标,并带有红色框。在这张图片中。网站
还找到了Xpath,但似乎无法正常工作,该图标可以在网页上点击。Xpath
我的代码如下:
driver.implicitly_wait(7)
tr = driver.find_element_by_xpath('//*[@id="AthleteTheme_wt6_block_wtMainContent_wt9_wtClassTable_ctl05_AthleteTheme_wt221_block_wtIconSvg_Svg"]/svg/use')
tr.click()
感谢
Element位于svg
标记中。同样的东西也有不同的语法。参考链接-链接1、链接2
要访问svg
标记元素,语法如下:
//*[local-name()='svg']
根据屏幕截图,元素的xpath为:
//span[@id="AthleteTheme_wt6_block_wtMainContent_wt9_wtClassTable_ctl05_AthleteTheme_wt221_block_wtIconSvg_Svg"]/*[local-name()='svg']/*[local-name()='use']
您不能直接使用//来定位SVG元素。它们是一种特殊的标签。
始终使用//*[name()='svg']
或//*[local-name()='svg']
来定位它们。
根据您共享的HTML,请使用以下xpath:
//a[@class='svgContainer']//child::span//*[name()='svg' and starts-with(@id,'AthleteTheme')]//*[name()='use']
**如果我们在HTML DOM
中是否有唯一条目,请检查dev tools
(Google chrome)。
检查步骤:
Press F12 in Chrome
->转到element
部分->进行CTRL + F
->然后粘贴xpath
,看看您想要的element
是否通过1/1
匹配节点突出显示。
代码试用1:
time.sleep(5)
driver.find_element_by_xpath("//a[@class='svgContainer']//child::span//*[name()='svg' and starts-with(@id,'AthleteTheme')]//*[name()='use']").click()
代码试用2:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@class='svgContainer']//child::span//*[name()='svg' and starts-with(@id,'AthleteTheme')]//*[name()='use']"))).click()
代码试用3:
time.sleep(5)
button = driver.find_element_by_xpath("//a[@class='svgContainer']//child::span//*[name()='svg' and starts-with(@id,'AthleteTheme')]//*[name()='use']")
driver.execute_script("arguments[0].click();", button)
代码试用4:
time.sleep(5)
button = driver.find_element_by_xpath("//a[@class='svgContainer']//child::span//*[name()='svg' and starts-with(@id,'AthleteTheme')]//*[name()='use']")
ActionChains(driver).move_to_element(button).click().perform()
进口:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains