【发布时间】:2021-10-04 07:51:38
【问题描述】:
我在一个看似简单的问题上花了很多时间,但我仍在寻找答案。
这是 print(browser.page_source) 的输出,所以我的路径是正确的。
这是我试图用 Selenium 点击的按钮,但一点运气都没有。我没有使用 Selenium 和 SVG 的经验。我不确定 SVG 是否会在这里发挥作用。我认为一个带有 .click(0 事件的简单 xpath 应该可以做到,但到目前为止还没有骰子。
<button type="button" disabled="" class=“kl-button kl-button-pri ce-blue-button kl—button-disabled">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 22 22” fill="none" stroke=“bluecolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=“school_search green_fields-search”>
<circle cx="12” cy="12” r=“9”></circle>
<path d="M17 19l-4.25-4.15"></path>
</svg>
School Finder<span class="green_fields_p”><span class="green_fields"></span></span>
</button>
这是我迄今为止尝试过的。
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
browser = webdriver.Chrome(ChromeDriverManager().install())
# browser.get('https://google.com')
browser.get(url)
# find_all = browser.find_element_by_xpath("//div[@class='school_load']//div[2]//button[2]")
# find_all = browser.find_element_by_xpath('//*[@id="LoadResults"]/div[2]/div[2]/div[1]/div[2]/button[1]')
# browser.find_element_by_xpath('//button[@class="ce-blue-button" and child::svg[@class="school_search green_fields-search"]]').click()
# find = browser.find_element_by_xpath('//button[@class="kl-button kl-button-pri ce-blue-button kl—button-disabled"]')
find = browser.find_element_by_xpath('//button[@class="ce-blue-button"]//*[name()="svg"][@class="school_search green_fields-search"]')
print(find)
find.click()
# browser.find_element_by_xpath('//button/*[name()="svg"][@class="school_search green_fields-search"]').click()
我得到了输出
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element:
或
<selenium.webdriver.remote.webelement.WebElement (session="2f2ab3421ll4fd509ecbeb762bd11d8e", element="44d4ce11-5a26-412a-8md1-83c59plm7c12")>
无论我如何尝试,我都无法点击按钮。任何帮助表示赞赏。
【问题讨论】:
-
click() 仅存在于 HTML 元素上,您是否尝试在 SVG 元素上调用它?
-
你能分享一个指向那个页面的链接吗?
-
@RobertLongson : svg 元素不属于网络元素类别吗?
标签: python-3.x selenium-webdriver svg button selenium-chromedriver