Python 在selenium中读取span类数据

Python 在selenium中读取span类数据,python,html,selenium,Python,Html,Selenium,我有一个像这样的标签我想这是在儿童类。。。我试图点击带有“详细信息”文本的按钮。。。我没有发现任何元素错误 span_ngcontent-tbi-c3=”“class=“ng star inserted”>详细信息因此,根据您的照片,我相信我们可以通过以下方式隔离我们的xpath # xpath to find the button for the span //div[@class='container-wrapper']//div[@class='tab-header']//mat-tab

我有一个像这样的标签我想这是在儿童类。。。我试图点击带有“详细信息”文本的按钮。。。我没有发现任何元素错误


span_ngcontent-tbi-c3=”“class=“ng star inserted”>详细信息因此,根据您的照片,我相信我们可以通过以下方式隔离我们的
xpath

# xpath to find the button for the span
//div[@class='container-wrapper']//div[@class='tab-header']//mat-tab-group[contains(@class, 'mat-tab-group')]//div[@class='mat-tab-label-container']//div[@class='mat-tab-labels']//div[@class='mat-tab-label-content']//span[contains(., 'Details')]/../..
/../..
告诉
selenium
遍历/向后移动两个级别。这将带您进入
div cdkmonitorelementfocus
元素,该元素的
tabindex
为-1。在我的假设中,我相信tabindex-1意味着该选项卡未被选中。(您可能需要与开发人员澄清这一点)

根据这个假设,您可以让
selenium
单击您的选项卡

# our xpath
xpath_text = //div[@class='container-wrapper']//div[@class='tab-header']//mat-tab-group[contains(@class, 'mat-tab-group')]//div[@class='mat-tab-label-container']//div[@class='mat-tab-labels']//div[@class='mat-tab-label-content']//span[contains(., 'Details')]/../..

# clicks our web element
driver.find_element(By.XPATH, xpath_text).click()
我会确保您可以打开您的Google Chrome开发者工具(F12),进入元素选项卡,按
CTRL+F
(通用“查找”功能)并将
xpath
粘贴到底部显示的查找文本框中。如果结果是
1/1
,则表示您很好。如果结果类似于
1of2
1of4
,那么应该包装
xpath
并获取第一个元素

这是
标签级别的
xpath

# xpath - label level
//mat-tab-header[@class='mat-tab-header']//div[@class='mat-tab-label-container']//div[@class='mat-tab-labels']//div[@cdkmonitorelementfocus]//span[contains(., 'Details')]/..

# xpath - click label level
xpath_text = "//mat-tab-header[@class='mat-tab-header']//div[@class='mat-tab-label-container']//div[@class='mat-tab-labels']//div[@cdkmonitorelementfocus]//span[contains(., 'Details')]/.."
driver.find_element(By.XPATH, xpath_text).click()


# xpath - label level - wrapped
(//mat-tab-header[@class='mat-tab-header']//div[@class='mat-tab-label-container']//div[@class='mat-tab-labels']//div[@cdkmonitorelementfocus]//span[contains(., 'Details')]/..)[1]

# xpath - click label level - wrapped
xpath_text = "(//mat-tab-header[@class='mat-tab-header']//div[@class='mat-tab-label-container']//div[@class='mat-tab-labels']//div[@cdkmonitorelementfocus]//span[contains(., 'Details')]/..)[1]"
driver.find_element(By.XPATH, xpath_text).click()
这是
cdkmonitorelementfocus
级别的
xpath

# xpath - cdkmonitorelementfocus level
//mat-tab-header[@class='mat-tab-header']//div[@class='mat-tab-label-container']//div[@class='mat-tab-labels']//div[@cdkmonitorelementfocus]//span[contains(., 'Details')]/../..

# xpath - click cdkmonitorelementfocus level
xpath_text = "//mat-tab-header[@class='mat-tab-header']//div[@class='mat-tab-label-container']//div[@class='mat-tab-labels']//div[@cdkmonitorelementfocus]//span[contains(., 'Details')]/../.."
driver.find_element(By.XPATH, xpath_text).click()


# xpath - cdkmonitorelementfocus level - wrapped
(//mat-tab-header[@class='mat-tab-header']//div[@class='mat-tab-label-container']//div[@class='mat-tab-labels']//div[@cdkmonitorelementfocus]//span[contains(., 'Details')]/../..)[1]

# xpath - cdkmonitorelementfocus label level - wrapped
xpath_text = "(//mat-tab-header[@class='mat-tab-header']//div[@class='mat-tab-label-container']//div[@class='mat-tab-labels']//div[@cdkmonitorelementfocus]//span[contains(., 'Details')]/../..)[1]"
driver.find_element(By.XPATH, xpath_text).click()

你能提供网站的链接吗?请正确设置你的代码格式。你确定你可以通过.link\u TEXT使用
?这个“链接”似乎不是一个链接(
),而只是许多
div
s../html/body/app root/div/div/div/div/app dashboard web/div/div/div/div[2]/div/div/div/div[1]/div/div/div/div[1]/mat选项卡组/mat选项卡头/div[2]/div/div/div/div[2]/div/span这是完整的xpath,因此我进一步将代码编写为self.driver.find_元素(By.xpath,//div//span[contains(,'Details')]/..)。click()仍然会出错,因为没有这样的元素或元素不是foundelement\u to\u双击=self.driver.find_元素\u By_xpath(//div[@class='mat-tab-label-content']///span[@class='ng-star-inserted'并包含(text(),'Details')]”actions=ActionChains(self.driver)actions。单击(元素到元素双击)#对元素操作执行操作。执行()****尝试了同样的操作,但仍然不起作用***作为第一个假设,我认为我的xpath是错误的,当我复制粘贴到inspect页面时,我可以看到它高亮显示到所需的类hmm…是否可以添加HTML源代码的屏幕截图?因为如果没有源代码,可能很难看到为什么你没有获得e你可以使用的东西是:
element=WebDriverWait(这里是你的驱动程序,10)。直到(预期的条件。元素的存在(locator=(By.XPATH,“XPATH here”)
我在顶部附上了一个屏幕截图,请告诉我如何解决它。@swaroopgarlapati-更新了我的答案