【发布时间】:2021-07-23 20:33:28
【问题描述】:
我编写了一个脚本来查找并单击一个按钮,直到今天它都运行良好。我想知道是什么原因造成的:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"button[data-bind="click:selectLocation"]"}
我尝试添加 time.sleep() 只是为了确保我等待页面加载的时间足够长,但是没有,错误仍然出现。这是按钮的html:
<div class="form-group">
<div class="col-xs-12">
<label data-bind="lang:searchSelectLocation">Select a location</label>
<button type="button" class="btn btn-default btn-block text-left" data-bind="click:selectLocation"> <i class="fa fa-fw fa-map-marker-alt" data-bind="css:loadingLocation ? 'fa-spinner fa-spin' : 'fa-map-marker-alt'"></i> <!--ko text: location ? location.name : $root.lang('searchSelectLocationOptions') -->Cityname<!--/ko--><i class="fa fa-chevron-right pull-right"></i>
</button>
</div>
</div>
这里是代码 sn-p 找到并点击按钮:
time.sleep(20)
driver.find_element_by_css_selector('button[data-bind="click:selectLocation"]').click()
time.sleep(20)
P.S 在点击之前我已经等待了。很抱歉错过了。
【问题讨论】:
-
你需要先睡觉再找。 time.sleep() 然后 driver.find()
-
正如已经建议的那样,在点击之前等待。 200 秒过大超时
-
我之前也有一个 time.sleep() 。没有帮助。
-
@DanMullin 还有其他建议吗?
-
@Jandeer7 我一直在寻找。我使用 .Net 版本的 Selenium,并成功使用了等待加载功能。那是在python Selenium中吗?我看到它是基于答案的。嗯..
标签: python html python-3.x selenium web-scraping