Python-Selenium-webscrape xmlns表

Python-Selenium-webscrape xmlns表,python,xml,selenium,xpath,Python,Xml,Selenium,Xpath,最后两行代码实际上是在测试xpath崩溃之前我可以走的路。尝试将xpath扩展到超出此点的任何内容都会导致NoTouchElementException 谁能解释一下我是如何从表格中提取数据的 我目前的想法是,也许我必须将“某物”传递到xml树api中,并通过该api访问它。虽然我不知道如何捕捉它 如果有人能给我下一步,我将不胜感激,此刻我有点像在黑暗的房间里拿着蜡烛。这很简单。这是一个时间问题 解决方案:在xpath请求之前放置time.sleep(5) import time from se

最后两行代码实际上是在测试xpath崩溃之前我可以走的路。尝试将xpath扩展到超出此点的任何内容都会导致NoTouchElementException

谁能解释一下我是如何从表格中提取数据的

我目前的想法是,也许我必须将“某物”传递到xml树api中,并通过该api访问它。虽然我不知道如何捕捉它


如果有人能给我下一步,我将不胜感激,此刻我有点像在黑暗的房间里拿着蜡烛。

这很简单。这是一个时间问题

解决方案:在xpath请求之前放置time.sleep(5)

import time
from selenium import webdriver

chromeOps=webdriver.ChromeOptions()
chromeOps._binary_location = "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"
chromeOps._arguments = ["--enable-internal-flash"]

browser = webdriver.Chrome("C:\\Program Files\\Google\\Chrome\\Application\\chromedriver.exe", port=4445, chrome_options=chromeOps)
time.sleep(3)

browser.get('website')
elem=browser.find_element_by_id('MainForm')
el=elem.find_element_by_xpath('//*[@id="ReportHolder"]')
xpath正在请求对动态内容的引用

该表是动态内容,加载该内容所需的时间比python程序到达第行所需的时间更长:

browser.get('http://www.mmgt.co.uk/HTMLReport.aspx?ReportName=Fleet%20Day%20Summary%20Report&ReportType=7&CategoryID=4923&Startdate='+strDate+'&email=false')
time.sleep(5)
ex=browser.find_element_by_xpath('//*[@id="ReportHolder"]/table/tbody/tr/td')
从其前一行:

ex=browser.find_element_by_xpath('//*[@id="ReportHolder"]/table/tbody/tr')

为了澄清,如果您使用xpath,例如:
driver.find\u element\u by\u xpath(“//div[@id='ReportHolder']/table/tbody/tr”)
您收到了异常?是的,这是正确的。在我的示例中:el=browser.find_element_by_xpath('/*[@id=“ReportHolder”]/table/tbody/tr')生成一个NoTouchElementException,而不是使用
time.sleep()
尝试使用内置的
WebdriverWait
类和支持的
ExpectedConditions
。例如,
WebdriverWait(self.druver,5).until(ExpectedConditions.presence\u of_元素位于((By.XPATH,“XPATH在这里”))
ex=browser.find_element_by_xpath('//*[@id="ReportHolder"]/table/tbody/tr')
browser.get('http://www.mmgt.co.uk/HTMLReport.aspx?ReportName=Fleet%20Day%20Summary%20Report&ReportType=7&CategoryID=4923&Startdate='+strDate+'&email=false')