Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.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
Python 如何通过复杂的xpath查找元素?_Python_Html_Selenium_Selenium Webdriver_Xpath - Fatal编程技术网

Python 如何通过复杂的xpath查找元素?

Python 如何通过复杂的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

我想找到一个按钮,但不知道如何,因为html代码很复杂。你能帮我吗

HTML


但是它似乎不起作用…

根据您想用它做什么,您可以执行
//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']")