Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium ElementNotInteractiableException与ASP.NET报表查看器(Python)_Python_Python 3.x_Selenium_Drop Down Menu_Reportviewer - Fatal编程技术网

Selenium ElementNotInteractiableException与ASP.NET报表查看器(Python)

Selenium ElementNotInteractiableException与ASP.NET报表查看器(Python),python,python-3.x,selenium,drop-down-menu,reportviewer,Python,Python 3.x,Selenium,Drop Down Menu,Reportviewer,我试图通过selenium从我们公司的ASP.NET ReportViewer中提取CSV报告。 我已经点击了导出下拉菜单(见图),但我无法点击csv按钮(将下载csv报告),我尝试等待,然后点击没有结果 我的代码: driver = webdriver.Chrome(r'C:\Users\User\chromedriver.exe') url = 'Logon.aspx' # target url driver.get(url) # open url driver.find_ele

我试图通过selenium从我们公司的ASP.NET ReportViewer中提取CSV报告。 我已经点击了导出下拉菜单(见图),但我无法点击csv按钮(将下载csv报告),我尝试等待,然后点击没有结果

我的代码:

driver = webdriver.Chrome(r'C:\Users\User\chromedriver.exe')  
url = 'Logon.aspx'  # target url

driver.get(url)  # open url

driver.find_element_by_xpath('//*[@id="ctl00_maincontent_txtUsername"]').send_keys('_user')  # username cred
driver.find_element_by_xpath('//*[@id="ctl00_maincontent_txtPassword"]').send_keys('_pswd')  # pass
driver.find_element_by_xpath('//*[@id="ctl00_maincontent_btnLogin"]').click()  # click login btn

driver.find_element_by_xpath('//*[@id="JobsReports"]').click()  # click job report btn
driver.find_element_by_xpath('//*[@id="ctl00_maincontent_TRCB3"]').click()  # click 'Task details' check box
driver.find_element_by_xpath('//*[@id="ctl00_maincontent_RunReportsBtn"]').click()   # click view report btn

time.sleep(3)

driver.switch_to.window(driver.window_handles[-1])
driver.implicitly_wait(120)

# driver.find_element_by_xpath('//*[@id="ReportViewer1_ctl05_ctl05_ctl00_ctl00"]/table/tbody/tr/td/input').click()
# driver.implicitly_wait(120)

driver.find_element_by_xpath('//*[@id="ReportViewer1_ctl05_ctl04_ctl00_ButtonLink"]').click()  # click save dropdown

driver.implicitly_wait(3)
driver.find_element_by_xpath('/html/body/form/div[3]/div/span/div/table/tbody/tr[3]/td/div/div/div[4]/table/tbody/tr/td/div[2]/div[2]/a').click()  # click 'CSV' to download
  Traceback (most recent call last):
  File "C:\Users\User\PycharmProjects\Onsite_automation\main.py", line 32, in <module>
    driver.find_element_by_xpath('/html/body/form/div[3]/div/span/div/table/tbody/tr[3]/td/div/div/div[4]/table/tbody/tr/td/div[2]/div[2]/a').click()  # click 'view report' btn
  File "C:\Users\User\PycharmProjects\pythonProject3\venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
    self._execute(Command.CLICK_ELEMENT)
  File "C:\Users\User\PycharmProjects\pythonProject3\venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
    return self._parent.execute(command, params)
  File "C:\Users\User\PycharmProjects\pythonProject3\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Users\User\PycharmProjects\pythonProject3\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
  (Session info: chrome=90.0.4430.72)
HTML/Layout:

driver = webdriver.Chrome(r'C:\Users\User\chromedriver.exe')  
url = 'Logon.aspx'  # target url

driver.get(url)  # open url

driver.find_element_by_xpath('//*[@id="ctl00_maincontent_txtUsername"]').send_keys('_user')  # username cred
driver.find_element_by_xpath('//*[@id="ctl00_maincontent_txtPassword"]').send_keys('_pswd')  # pass
driver.find_element_by_xpath('//*[@id="ctl00_maincontent_btnLogin"]').click()  # click login btn

driver.find_element_by_xpath('//*[@id="JobsReports"]').click()  # click job report btn
driver.find_element_by_xpath('//*[@id="ctl00_maincontent_TRCB3"]').click()  # click 'Task details' check box
driver.find_element_by_xpath('//*[@id="ctl00_maincontent_RunReportsBtn"]').click()   # click view report btn

time.sleep(3)

driver.switch_to.window(driver.window_handles[-1])
driver.implicitly_wait(120)

# driver.find_element_by_xpath('//*[@id="ReportViewer1_ctl05_ctl05_ctl00_ctl00"]/table/tbody/tr/td/input').click()
# driver.implicitly_wait(120)

driver.find_element_by_xpath('//*[@id="ReportViewer1_ctl05_ctl04_ctl00_ButtonLink"]').click()  # click save dropdown

driver.implicitly_wait(3)
driver.find_element_by_xpath('/html/body/form/div[3]/div/span/div/table/tbody/tr[3]/td/div/div/div[4]/table/tbody/tr/td/div[2]/div[2]/a').click()  # click 'CSV' to download
  Traceback (most recent call last):
  File "C:\Users\User\PycharmProjects\Onsite_automation\main.py", line 32, in <module>
    driver.find_element_by_xpath('/html/body/form/div[3]/div/span/div/table/tbody/tr[3]/td/div/div/div[4]/table/tbody/tr/td/div[2]/div[2]/a').click()  # click 'view report' btn
  File "C:\Users\User\PycharmProjects\pythonProject3\venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
    self._execute(Command.CLICK_ELEMENT)
  File "C:\Users\User\PycharmProjects\pythonProject3\venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
    return self._parent.execute(command, params)
  File "C:\Users\User\PycharmProjects\pythonProject3\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Users\User\PycharmProjects\pythonProject3\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
  (Session info: chrome=90.0.4430.72)


错误:

driver = webdriver.Chrome(r'C:\Users\User\chromedriver.exe')  
url = 'Logon.aspx'  # target url

driver.get(url)  # open url

driver.find_element_by_xpath('//*[@id="ctl00_maincontent_txtUsername"]').send_keys('_user')  # username cred
driver.find_element_by_xpath('//*[@id="ctl00_maincontent_txtPassword"]').send_keys('_pswd')  # pass
driver.find_element_by_xpath('//*[@id="ctl00_maincontent_btnLogin"]').click()  # click login btn

driver.find_element_by_xpath('//*[@id="JobsReports"]').click()  # click job report btn
driver.find_element_by_xpath('//*[@id="ctl00_maincontent_TRCB3"]').click()  # click 'Task details' check box
driver.find_element_by_xpath('//*[@id="ctl00_maincontent_RunReportsBtn"]').click()   # click view report btn

time.sleep(3)

driver.switch_to.window(driver.window_handles[-1])
driver.implicitly_wait(120)

# driver.find_element_by_xpath('//*[@id="ReportViewer1_ctl05_ctl05_ctl00_ctl00"]/table/tbody/tr/td/input').click()
# driver.implicitly_wait(120)

driver.find_element_by_xpath('//*[@id="ReportViewer1_ctl05_ctl04_ctl00_ButtonLink"]').click()  # click save dropdown

driver.implicitly_wait(3)
driver.find_element_by_xpath('/html/body/form/div[3]/div/span/div/table/tbody/tr[3]/td/div/div/div[4]/table/tbody/tr/td/div[2]/div[2]/a').click()  # click 'CSV' to download
  Traceback (most recent call last):
  File "C:\Users\User\PycharmProjects\Onsite_automation\main.py", line 32, in <module>
    driver.find_element_by_xpath('/html/body/form/div[3]/div/span/div/table/tbody/tr[3]/td/div/div/div[4]/table/tbody/tr/td/div[2]/div[2]/a').click()  # click 'view report' btn
  File "C:\Users\User\PycharmProjects\pythonProject3\venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
    self._execute(Command.CLICK_ELEMENT)
  File "C:\Users\User\PycharmProjects\pythonProject3\venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
    return self._parent.execute(command, params)
  File "C:\Users\User\PycharmProjects\pythonProject3\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Users\User\PycharmProjects\pythonProject3\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
  (Session info: chrome=90.0.4430.72)
回溯(最近一次呼叫最后一次):
文件“C:\Users\User\PycharmProjects\site\u automation\main.py”,第32行,在
驱动程序。通过xpath('/html/body/form/div[3]/div/span/div/table/tbody/tr[3]/td/div/div/div[4]/table/tbody/tr/td/div[2]/div[2]/a')查找元素。单击()
文件“C:\Users\User\PycharmProjects\pythonProject3\venv\lib\site packages\selenium\webdriver\remote\webelement.py”,第80行,单击
self.\u执行(命令。单击\u元素)
文件“C:\Users\User\PycharmProjects\pythonProject3\venv\lib\site packages\selenium\webdriver\remote\webelement.py”,第633行,在执行中
返回self.\u parent.execute(命令,参数)
文件“C:\Users\User\PycharmProjects\pythonProject3\venv\lib\site packages\selenium\webdriver\remote\webdriver.py”,执行中第321行
self.error\u handler.check\u响应(响应)
文件“C:\Users\User\PycharmProjects\pythonProject3\venv\lib\site packages\selenium\webdriver\remote\errorhandler.py”,第242行,在check\u响应中
引发异常类(消息、屏幕、堆栈跟踪)
selenium.common.exceptions.ElementNotInteractiableException:消息:元素不可交互
(会话信息:chrome=90.0.4430.72)
谢谢你的帮助

试试看

driver.find_element_by_xpath("//a[contains(@title, 'CSV (comma delimited)')]").click()
它应该解决一个定位器问题。
如果您决定使用隐式等待,请将其变大(10)。3秒的值太小了。

谢谢你帮我找到了定位器@vitaliis, 我改变了:

driver.switch_to.window(driver.window_handles[-1])
driver.implicitly_wait(120)
致:


在脚本开头设置隐式等待在最后一行之前已经有3秒的隐式等待。如果对您有效,您可以接受任何答案。欢迎。如果我的回答有助于接受/支持它。