我想在 Python 上使用 Selenium 单击一个按钮(事件),按钮代码是:
<input id="workbenchLst:j_id_id509" name="workbenchLst:j_id_id509" onclick="A4J.AJAX.Submit('workbenchLst',event,{'similarityGroupingId':'workbenchLst:j_id_id509','parameters':{'ajaxSingle':'workbenchLst:j_id_id509','workbenchLst:j_id_id509':'workbenchLst:j_id_id509'} ,'containerId':'j_id_id1'} );return false;" value="Add" type="button" autocomplete="off">
我的代码:
driver.find_element_by_id("workbenchLst:j_id_id509").click()#add
它不起作用,错误:
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [name="workbenchLst:j_id_id509"]
首先检查页面中的 iframe/frame,如果有 frame/iframe,则需要先切换框架,如下所示:
driver.switch_to_frame(driver.find_element_by_id("iframeid"));
您可以尝试使用以下 XPath 单击元素:
element = driver.find_element_by_xpath("//input[contains(@id, 'workbenchLst') and @value='Add']");
element.click();
或者您可以尝试使用如下所示的 JavaScript Executor:
element = driver.find_element_by_xpath("//input[contains(@id, 'workbenchLst') and @value='Add']");
driver.execute_script("arguments[0].click();", element);
仍然无法正常工作,然后尝试给予一些延迟,从时间导入睡眠,如下所示:
from time import sleep
driver.switch_to_frame(driver.find_element_by_id("iframeid"));
sleep(5);
element = driver.find_element_by_xpath("(//input[contains(@id, 'workbenchLst') and @value='Add'])[2]");
element.click();
我希望它有效...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句