Python 3.x 当html元素没有确定的id时,使用selenium和pandas读取和写入文本值

Python 3.x 当html元素没有确定的id时,使用selenium和pandas读取和写入文本值,python-3.x,pandas,selenium-webdriver,Python 3.x,Pandas,Selenium Webdriver,我正在创建一个程序,从excel文件中读取飞机注册列表并返回飞机型号代码 我的信息来源是FlightRadar24。(示例-) 我尝试检查页面上的元素,以找到要调用的正确类id,并发现该id作为“详细信息”列出。当我运行代码时,它使用类id/名称详细信息而不是类型代码提取飞机名称。 然后,我改变了使用XPath查找正确文本的方法,但使用XPath打印出来 (对于Xpath,我使用了一个浏览器附加组件来查找元素的确切Xpath,我确信它是正确的。) 它没有输出。在这种情况下,在提取没有明确id的值

我正在创建一个程序,从excel文件中读取飞机注册列表并返回飞机型号代码

我的信息来源是FlightRadar24。(示例-) 我尝试检查页面上的元素,以找到要调用的正确类id,并发现该id作为“详细信息”列出。当我运行代码时,它使用类id/名称详细信息而不是类型代码提取飞机名称。 然后,我改变了使用XPath查找正确文本的方法,但使用XPath打印出来 (对于Xpath,我使用了一个浏览器附加组件来查找元素的确切Xpath,我确信它是正确的。) 它没有输出。在这种情况下,在提取没有明确id的值时,您有什么建议

for i in list_regs:

        driver.get('https://www.flightradar24.com/data/aircraft/'+i)
        driver.implicitly_wait(3)

        load = 0

        while load==0:

            try:
                element = driver.find_element_by_xpath("/html/body/div[5]/div/section/section[2]/div[1]/div[1]/div[2]/div[2]/span")
                print('element') #Printing to terminal to see if the right value is returned.

您可能应该将xpath表达式更改为:

//label[.="TYPE CODE"]/following-sibling::span[@class="details"]

编辑: 这对我很有用:

element = driver.find_element_by_xpath('//label[.="TYPE CODE"]/following-sibling::span[@class="details"]')
print(element.text)
输出:

A359

您可能应该将xpath表达式更改为:

//label[.="TYPE CODE"]/following-sibling::span[@class="details"]

编辑: 这对我很有用:

element = driver.find_element_by_xpath('//label[.="TYPE CODE"]/following-sibling::span[@class="details"]')
print(element.text)
输出:

A359

为什么要打印字符串
'element'
而不是变量:
打印('element')
是的,我已经更正了。为什么要打印字符串
'element'
而不是变量:
打印('element')
是的,我已经更正了。你好@JackFleeting!谢谢你的帮助。我已经纠正了元素错误。至于xpath表达式,当我尝试构建它时,它向我显示了一个语法错误。您的回答向我展示了一种完全不同的使用xpath的方法。谢谢你!你好@JackFleeting!谢谢你的帮助。我已经纠正了元素错误。至于xpath表达式,当我尝试构建它时,它向我显示了一个语法错误。您的回答向我展示了一种完全不同的使用xpath的方法。谢谢你!