这是我要单击的元素的 html:
<a id="sd3" class="node"
href="/cgi-bin/luci/;stok=753940cb907c7e8524cfaf3c5227614c/expert/configuration/network/wlan"
target="mainFrame" onclick="javascript: d.s(3);">Wireless LAN 2.4G</a>
这是引发的错误:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element
在 F12 检查屏幕中,这是 xpath:
//*[@id="sd3"]
这是选择器:
#sd3
这是完整的 xpath:
/html/body/div[3]/div/ul/li[2]/div/ul/li/div/ul/li[3]/div/div/div[2]/div[2]/div[2]/a
我尝试了所有这些:
driver.find_element_by_link_text(url).click()
driver.find_element_by_xpath("//dTreeNode[3]").click()
driver.find_element_by_partial_link_text('url').click()
driver.find_element_by_css_selector('a.node').click()
driver.find_element_by_xpath("//dd1[2]").click()
driver.find_element_by_css_selector('a#sd3').click()
driver.find_element_by_css_selector(".node[id='sd3']").click()
driver.find_element_by_xpath("//a[@id='sd3']").click()
driver.find_element_by_link_text('Wireless LAN 2.4G').click()
driver.find_element_by_xpath("//div[@id='dd1']/div[2]/a[1]").click()
driver.find_element_by_xpath("//div[@id='dd1']/div[2]/a[@id='sd3']").click()
driver.find_element_by_xpath("//a[@id='sd3']").click()
driver.find_element_by_id("sd3").click()
driver.find_element_by_link_text('Wireless LAN 2.4G').click()
driver.find_element_by_xpath("/html/body/div[3]/div/ul/li[2]/div/ul/li/div/ul/li[3]/div/div/div[2]/div[2]/div[2]/a").click()
driver.find_element_by_xpath("//*[@id='sd3']").click()
结论:我必须承认,我发现自己完全无能为力,尽管我做了很多不同的尝试,但还是提出了同样的例外。然而,我在脚本前面使用了同一行代码,它的工作原理就像一角钱。我什至试图给内容生成时间(3 秒),因为它是动态生成的。我得出了两个结论。我要么是我找不到的问题,要么这是一些动态生成的内容,这给 Selenium 增加了一层我没有得到的复杂性。