Python 接收错误消息";没有此类元素:无法定位元素“;尝试使用xpath查找元素时

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

提供程序不允许使用连接器访问托管服务器。因此,我尝试使用带有Selenium的Python脚本导出一些表。我无法找到/单击phpMyAdmin的导出按钮

我尝试使用它的XPATH来定位按钮,XPATH是通过Chrome浏览器获得的。 我将驱动程序Chrome和Selenium更新为最新版本。试图使驱动程序等待:

(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
    
  • 您可以在以下内容中找到一些相关讨论:


最新窗口的激活:driver.switch_to_window(driver.window_句柄[-1])

是的,但没有效果:我得到一个NoTouchElementException元素是否可能包含在某种容器中,因此我必须首先处理更高级别的元素?使用框架时很常见,但可能还有其他类似操作的构造。这两种构造都不起作用,因为
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