Python 3 和 Selenium,提交按钮不可点击
Python 3 and Selenium, submit button not clickable
我知道关于元素不可点击的问题也有类似的问题,但对我来说没有任何建议的解决方案。我主要使用 Chromedriver,有时使用 Geckodriver,两者都会出现。
仍在收到消息:未知错误:元素在点 (470、1499) 不可单击
正如您所见,我尝试了 find_element.click() 以及动作链。
在我的案例中,更令人困惑的是 ("M_1_anchor") 部分通过,而 ("submit") 部分失败,不可点击。只是为了增加另一个混乱,相同的功能在 2017 年 8 月中旬之前运行良好。
我的职能是:
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
def select_and_click_edit_contact_details(self):
wait = WebDriverWait(self.driver, 10)
action = ActionChains(self.driver)
wait.until(expected_conditions.element_to_be_clickable((By.ID, "M_1_anchor")))
self.driver.find_element_by_id("M_1_anchor").click()
action.move_to_element(self.driver.find_element_by_id("submit")).perform()
action.click(self.driver.find_element_by_id("submit")).perform()
#self.driver.find_element_by_id("submit").click()
我承认提交按钮在页面上不可见,用户需要向下滚动,但这不应该成为失败的原因。
</select></div>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#report">
Report
</a>
</h4>
</div>
<div id="report" class="panel-collapse collapse in">
<div class="panel-body">
<div class="row">
<label class="col-xs-2 col-md-3 control-label">
Image file of your logo
</label>
<div class="col-xs-10 col-md-9">
<img class="img img-responsive" src="data:image/jpg;base64,/9k=" width="100"> </div>
</div>
<div class="row" style="margin-top: 20px;">
<label class="col-xs-2 col-md-3 control-label">
Footer text on driver accounting
</label>
<div class="col-xs-10 col-md-9">
<p class="form-control-static">
20
</p>
</div>
</div>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a class="accordion-toggle collapsed" data-
toggle="collapse" data-parent="#accordion" href="#cashbox">
Cashbox
</a>
</h4>
</div>
<div id="cashbox" class="panel-collapse collapse">
<div class="panel-body">
<p>Currently there are no cashboxes defined!</p>
</div>
</div>
</div>
<div class="form-group"></div>
<div class="form-group">
<label class="control-label col-md-3">
<input type="submit" id="submit" value="Edit" class="btn btn-primary">
</label>
</div>
</form></div>
<script type="text/javascript">
$(function () {
$("#list option").attr('disabled', true);
$('.selectpicker').selectpicker(
{
showContent: false
});
});
</script>
</div>
</div>
</div>
</div>
</div>
<div id="push"></div>
</div>
<script src="/HaleWebApplication/bundles/DatatablesNewJs?
v=83AITBTc8vgdDH09rqjGm5-sSopLGkHfDID5YpRCCVs1"></script>
<script src="/HaleWebApplication/bundles/TreeviewJs?
v=p6JgEssUYL1w3zZdiBDt4Ul_VWhmdclj9e1PSoZpKWI1"></script>
当我将 "expected_conditions.element_to_be_clickable" 而不是 "actionChains_move_to_element" 和 运行 放在 FF Geckodriver 下时,它工作正常。所以这是 Chrome 驱动程序问题或 Chrome 问题,但我不知道确切的原因或原因。如果有人可以帮助我识别它并向 Chrome 驱动程序打开一个错误,将不胜感激。
所以最后的解决方案是将 Chrome 版本从 61 降级到 60,并将 Chrome 驱动程序从 2.31 升级到 2.33。同步浏览器和网络驱动程序版本很重要。谢谢大家的回答。
我知道关于元素不可点击的问题也有类似的问题,但对我来说没有任何建议的解决方案。我主要使用 Chromedriver,有时使用 Geckodriver,两者都会出现。
仍在收到消息:未知错误:元素在点 (470、1499) 不可单击
正如您所见,我尝试了 find_element.click() 以及动作链。
在我的案例中,更令人困惑的是 ("M_1_anchor") 部分通过,而 ("submit") 部分失败,不可点击。只是为了增加另一个混乱,相同的功能在 2017 年 8 月中旬之前运行良好。
我的职能是:
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
def select_and_click_edit_contact_details(self):
wait = WebDriverWait(self.driver, 10)
action = ActionChains(self.driver)
wait.until(expected_conditions.element_to_be_clickable((By.ID, "M_1_anchor")))
self.driver.find_element_by_id("M_1_anchor").click()
action.move_to_element(self.driver.find_element_by_id("submit")).perform()
action.click(self.driver.find_element_by_id("submit")).perform()
#self.driver.find_element_by_id("submit").click()
我承认提交按钮在页面上不可见,用户需要向下滚动,但这不应该成为失败的原因。
</select></div>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#report">
Report
</a>
</h4>
</div>
<div id="report" class="panel-collapse collapse in">
<div class="panel-body">
<div class="row">
<label class="col-xs-2 col-md-3 control-label">
Image file of your logo
</label>
<div class="col-xs-10 col-md-9">
<img class="img img-responsive" src="data:image/jpg;base64,/9k=" width="100"> </div>
</div>
<div class="row" style="margin-top: 20px;">
<label class="col-xs-2 col-md-3 control-label">
Footer text on driver accounting
</label>
<div class="col-xs-10 col-md-9">
<p class="form-control-static">
20
</p>
</div>
</div>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a class="accordion-toggle collapsed" data-
toggle="collapse" data-parent="#accordion" href="#cashbox">
Cashbox
</a>
</h4>
</div>
<div id="cashbox" class="panel-collapse collapse">
<div class="panel-body">
<p>Currently there are no cashboxes defined!</p>
</div>
</div>
</div>
<div class="form-group"></div>
<div class="form-group">
<label class="control-label col-md-3">
<input type="submit" id="submit" value="Edit" class="btn btn-primary">
</label>
</div>
</form></div>
<script type="text/javascript">
$(function () {
$("#list option").attr('disabled', true);
$('.selectpicker').selectpicker(
{
showContent: false
});
});
</script>
</div>
</div>
</div>
</div>
</div>
<div id="push"></div>
</div>
<script src="/HaleWebApplication/bundles/DatatablesNewJs?
v=83AITBTc8vgdDH09rqjGm5-sSopLGkHfDID5YpRCCVs1"></script>
<script src="/HaleWebApplication/bundles/TreeviewJs?
v=p6JgEssUYL1w3zZdiBDt4Ul_VWhmdclj9e1PSoZpKWI1"></script>
当我将 "expected_conditions.element_to_be_clickable" 而不是 "actionChains_move_to_element" 和 运行 放在 FF Geckodriver 下时,它工作正常。所以这是 Chrome 驱动程序问题或 Chrome 问题,但我不知道确切的原因或原因。如果有人可以帮助我识别它并向 Chrome 驱动程序打开一个错误,将不胜感激。
所以最后的解决方案是将 Chrome 版本从 61 降级到 60,并将 Chrome 驱动程序从 2.31 升级到 2.33。同步浏览器和网络驱动程序版本很重要。谢谢大家的回答。