【发布时间】:2020-11-28 23:51:30
【问题描述】:
作为一个预警,我对编写代码非常陌生,只是把它作为一种爱好,所以如果我的行话不正确,我深表歉意。
我编写了一些代码来导航到一个网页,然后一遍又一遍地刷新该页面,直到出现某个元素(当前是一个类),然后单击该类。我不需要网站导航部分的帮助(该网站上的其他问题和答案对于找出该过程中的症结非常有帮助),但是当元素最终出现并且 selenium 尝试单击该元素时,我经常收到错误消息.我看到了一些不同的错误消息,包括:
- h4 class="start" 的元素引用已过时;要么元素不再附加到 DOM,它不在当前框架上下文中,要么文档已被刷新;或
- 元素在点 (706,145) 处不可点击,因为另一个元素 li class="loading-wrapper loading" 遮住了它。
以下是代码的相关部分:
i = 0
while i == 0:
if len(driver.find_elements_by_class_name("start")) == 0:
driver.find_element_by_class_name("active.day").click() #this just refreshes the page
time.sleep(0.1)
continue
else:
break
driver.find_elements_by_xpath("//*[@class='start' and starts-with(text(), '7')]")[0].click()
下面是我尝试点击的“开始”元素出现之前网站相关部分的示例:
<div id="content" class="row">
<ul id="times" class="col-md-12">
<li class="time empty muted">
<h1>No tee times available</h1>
<p>Booking for 8/09/2020 starts at 7:00pm (PDT)</p>
</li>
</ul>
</div>
下面是我尝试单击的“开始”元素出现后 HTML 相关部分的示例:
<div class="reserve-time">
<div class="pull-left">
<h4 class="start">7:38am</h4>
<div class="holes" style="margin-right: 0.5em;">
<i class="glyphicon glyphicon-flag"></i> <span class="holes">18</span>
</div>
<div class="spots">
<i class="glyphicon glyphicon-user"></i> <span class="spots">3</span>
</div>
</div>
<div class="pull-right">
<div class="price">
<span title="Green Fee">
<i class="icon-golf-ball-tee" style="font-size: 1em;"></i>
$33.00
</span>
</div>
</div>
</div>
提前感谢您的帮助!
附: - 我希望 HTML 在帖子中显示正常。我无法将 HTML 复制到帖子中并显示出来。
【问题讨论】: