Python 如何通过复杂的xpath查找元素?
我想找到一个按钮,但不知道如何,因为html代码很复杂。你能帮我吗 HTMLPython 如何通过复杂的xpath查找元素?,python,html,selenium,selenium-webdriver,xpath,Python,Html,Selenium,Selenium Webdriver,Xpath,我想找到一个按钮,但不知道如何,因为html代码很复杂。你能帮我吗 HTML 但是它似乎不起作用…根据您想用它做什么,您可以执行//span[2]来选择第二个span: 选择元素的示例 self.browser.通过xpath(“//span[2]”)查找元素 如果需要整个元素 选择文本的示例 self.browser.通过xpath(“//span[2]/text()”)查找元素 如果需要第二个跨距的内部html文本 我在上面测试了xpath表达式,以确保它能正常工作 我复制了您提供的ht
但是它似乎不起作用…根据您想用它做什么,您可以执行
//span[2]
来选择第二个span:
选择元素的示例
self.browser.通过xpath(“//span[2]”)查找元素
如果需要整个元素
选择文本的示例
self.browser.通过xpath(“//span[2]/text()”)查找元素
如果需要第二个跨距的内部html文本
我在上面测试了xpath表达式,以确保它能正常工作
我复制了您提供的html,只需输入xpath表达式//span[2]/text()
来测试它。
有关xpath的更多信息。谢谢,但现在尝试时出现了一个错误:selenium.common.exceptions.InvalidSelectorException:Message:invalid selector:xpath表达式“//span[2]/text()”的结果是:[object text]。它应该是一个元素。(会话信息:chrome=87.0.4280.141)。我尝试登录的网站是。这里显示了一个弹出窗口,我必须单击它。哦,这只是选择文本的一个示例,但是要获取整个元素本身,只需使用//span[2]
,后面没有任何内容。很抱歉,第一篇文章不清楚,而且我犯了一个错误,放了一个斜杠,我会编辑这篇文章。哦,天哪,这很有效!谢谢但是由于某种奇怪的原因,对象在一个列表中:我必须单击列表的第一个元素。很抱歉,请回复
<div style="margin-top: 20px;">
<span style="display: inline-block; margin: 5px; padding: 10px 15px; border-radius: 5px; font-size: 18px; line-height: 16px; cursor: pointer; color: rgb(255, 255, 255); background-color: rgb(99, 99, 102);">Bugsnag akzeptieren
</span>
<span style="display: inline-block; margin: 5px; padding: 10px 15px; border-radius: 5px; font-size: 18px; line-height: 16px; cursor: pointer; color: rgb(255, 255, 255); background-color: rgb(0, 122, 255);">Alle akzeptieren
</span>
</div>
self.browser.find_elements_by_xpath("//span[@style='the whole text that equals style in the html']")