Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.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 Selenium)在单击按钮之前,是否有方法读取按钮上方的html元素?_Python_Html_Selenium - Fatal编程技术网

(Python Selenium)在单击按钮之前,是否有方法读取按钮上方的html元素?

(Python Selenium)在单击按钮之前,是否有方法读取按钮上方的html元素?,python,html,selenium,Python,Html,Selenium,额外时间 2020-08-08T15:00 2020-08-08T19:00 经核准的 取消 网站格式如上图所示,但将在不同日期/时间重复;我想知道在单击“取消”按钮之前是否有办法检查时间(如15:00和19:00)。我以前的做法是将所有按钮放入一个列表中,然后单击索引为9的按钮,但是,如果所有按钮都缺少一个移位,而以前的索引9现在是索引8,则这不起作用(索引9之前的移位被删除,因此上面的所有内容都被下移) 一个是,我想先阅读一段时间,然后单击第一个可单击的按钮,但是,我不知道如何执行此操作,

额外时间
2020-08-08T15:00
2020-08-08T19:00
经核准的
取消
网站格式如上图所示,但将在不同日期/时间重复;我想知道在单击“取消”按钮之前是否有办法检查时间(如15:00和19:00)。我以前的做法是将所有按钮放入一个列表中,然后单击索引为9的按钮,但是,如果所有按钮都缺少一个移位,而以前的索引9现在是索引8,则这不起作用(索引9之前的移位被删除,因此上面的所有内容都被下移)


一个是,我想先阅读一段时间,然后单击第一个可单击的按钮,但是,我不知道如何执行此操作,或者是否可行。

读取按钮上方HTML元素的最佳方法是使用“Xpath”<代码>Xpath将为您提供来回导航的功能/能力

通过使用下面的
XPath
可以提取
中的文本。此外,您可以通过将其收集到列表中来重复相同的操作

对于第一个
时间,您可以使用下面的
xpath
-
//按钮[contains(text(),“Cancel”)]/parent::td/previous sibling::td[text()='Extra Time']/following sibling::td[1]

对于第二个
时间,您可以使用下面的
xpath
-
//按钮[包含(text(),“取消”)]/parent::td/前面的兄弟姐妹::td[text()='Extra Time']/后面的兄弟姐妹::td[2]

您可以使用
.text
属性提取文本


我正在查找与您的按钮相关的时间,该按钮由'Cancel'文本组成。要提取准确的时间,可以使用
substring()
方法。

读取按钮上方HTML元素的最佳方法是使用“Xpath”<代码>Xpath将为您提供来回导航的功能/能力

通过使用下面的
XPath
可以提取
中的文本。此外,您可以通过将其收集到列表中来重复相同的操作

对于第一个
时间,您可以使用下面的
xpath
-
//按钮[contains(text(),“Cancel”)]/parent::td/previous sibling::td[text()='Extra Time']/following sibling::td[1]

对于第二个
时间,您可以使用下面的
xpath
-
//按钮[包含(text(),“取消”)]/parent::td/前面的兄弟姐妹::td[text()='Extra Time']/后面的兄弟姐妹::td[2]

您可以使用
.text
属性提取文本


我正在查找与您的按钮相关的时间,该按钮由'Cancel'文本组成。要提取准确的时间,可以使用
substring()
方法。

我的新代码是
time=driver。通过xpath(//button[contains(text(),'Cancel')]/parent::td/previous sibling::td[text()='Extra time']/following sibling::td[1]”查找元素。
但是每当我执行
时间[0]。单击()
,它似乎就不起作用了。变量所指的元素现在似乎是时间,而不是按钮本身,这与我使用
time=driver时不同。通过xpath(“/*[contains(text(),'Cancel')]”和
time[1]查找元素。单击()
,按钮被按下@swaroop不要紧,它对我有效。我最终创建了两个不同的变量
Time
(实际的“取消”按钮)以索引到相应的正确
Time
(用于时间检查的变量)我的新代码是
Time=driver.find_elements_by_xpath(//button[contains(text(),'Cancel')]/parent::td/previous sibling::td[text()='Extra Time']/下面的兄弟姐妹::td[1]”
但是,每当我执行时间[0]时,单击()
,它似乎不起作用。变量所指的元素现在似乎是时间,而不是按钮本身,这与我使用
time=driver时不同。通过xpath(“/*[contains(text(),'Cancel')]”和
time[1]查找元素。单击()
,按钮被按下@swaroop不要紧,它对我有效。我最终创建了两个不同的变量
Time
(实际的“取消”按钮),以索引到相应的正确
Time
(用于时间检查的变量)
<td class="hidden-sm-down">Extra Time</td>
<td class="hidden-sm-down">2020-08-08T15:00</td>
<td class="hidden-sm-down">2020-08-08T19:00</td>
<td>Approved</td>
<td class="hidden-sm-down">  
      <button class="btn btn-secondary" data-backdrop="static" data-keyboard="false" data 
      target="#cancelRequestModal" data-toggle="modal" type="button">                                     
      Cancel