Python 接收错误消息";没有此类元素:无法定位元素“;尝试使用xpath查找元素时
提供程序不允许使用连接器访问托管服务器。因此,我尝试使用带有Selenium的Python脚本导出一些表。我无法找到/单击phpMyAdmin的导出按钮 我尝试使用它的XPATH来定位按钮,XPATH是通过Chrome浏览器获得的。 我将驱动程序Chrome和Selenium更新为最新版本。试图使驱动程序等待:Python 接收错误消息";没有此类元素:无法定位元素“;尝试使用xpath查找元素时,python,selenium-webdriver,xpath,window,handle,Python,Selenium Webdriver,Xpath,Window,Handle,提供程序不允许使用连接器访问托管服务器。因此,我尝试使用带有Selenium的Python脚本导出一些表。我无法找到/单击phpMyAdmin的导出按钮 我尝试使用它的XPATH来定位按钮,XPATH是通过Chrome浏览器获得的。 我将驱动程序Chrome和Selenium更新为最新版本。试图使驱动程序等待: (WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='navigat
(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='navigationbar']/ul[@id='topmenu']//li//img[@title='Exporteren']"))).click())
问题是由于某种原因,驾驶员找不到按钮。
我试图通过xpath、类、css等进行搜索,但没有成功。
我在html代码中找不到任何框架。
下面是一些html代码(在问题中似乎得到了解释…)
HTML:
错误消息:
no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id='topmenu']/li[4]/a/img"}
您是否尝试过按类名查找元素
content = driver.find_element_by_class_name('icon ic_s_status')
content = driver.find_element_by_class_name('icon ic_b_export')
要在文本为导出的元素上单击(),您必须诱导WebDriverWait使元素可单击()
,并且您可以使用以下任一选项:
- 使用
:CSS\u选择器
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.navigationbar > ul#topmenu li img[title='Exporteren']"))).click()
- 使用
:XPATH
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='navigationbar']/ul[@id='topmenu']//li//img[@title='Exporteren']"))).click()
- 注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
- 您可以在以下内容中找到一些相关讨论:
find\u element\u by\u class\u name()
需要一个单独的类名,而您传入了两个类名(它们之间的空格)。这将抛出一个错误。您可以将它们更改为CSS选择器,如.icon.ic_s_status
,它应该可以工作。我尝试了XPATH变体,出于某种原因,使用CSS选择器获得了TimeoutExceptionIdem,似乎找不到文本为“Exporteren”的元素。@RobertDL签出我添加到答案中的关于没有此类元素的参考讨论:找不到元素我已将Selenium和驱动程序更新为最新版本。恐怕没什么区别。
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='navigationbar']/ul[@id='topmenu']//li//img[@title='Exporteren']"))).click()
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC