对于selenium-无法单击模态内的元素感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍selenium无法点击元素,并为您提供关于ElementClickInterceptedExcepti
对于selenium-无法单击模态内的元素感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍selenium无法点击元素,并为您提供关于ElementClickInterceptedException:消息:拦截了元素单击:Selenium和Python无法单击元素、Java Selenium-POM-html xpath-没有这样的元素:无法找到元素、java – Selenium单击“成功”元素,但实际上并没有单击它、Java 如何强制Selenium WebDriver单击当前不可见的元素?的有用信息。
本文目录一览:- selenium-无法单击模态内的元素(selenium无法点击元素)
- ElementClickInterceptedException:消息:拦截了元素单击:Selenium和Python无法单击元素
- Java Selenium-POM-html xpath-没有这样的元素:无法找到元素
- java – Selenium单击“成功”元素,但实际上并没有单击它
- Java 如何强制Selenium WebDriver单击当前不可见的元素?
selenium-无法单击模态内的元素(selenium无法点击元素)
我正在使用Selenium和Java,无法单击模式内的元素。场景是这样的:单击框架内的项目后,它会打开一个模态,我需要单击此模态内的一个元素,但我无法获取它。
我已经尝试过:
js.executeScript("document.getElementById(''saveexit'').scrollIntoView(true);");
我也尝试过使用switchTo()这样:
while (itr.hasNext()) { String popup = itr.next(); System.out.println("itr: " + popup); driver.switchTo().window(popup);}
这是我的模态的HTML:
<div> <div> <div> ... </div> <div> <form id="formTo"> <div> ... </div> <div></div> <input ...> <div> <div> ... </div> <div> ... </div> </div> <div> <div> ... </div> <div> ... </div> </div> <div></div> <div> ... </div> </form> </div> <div></div> <div> <div> <div> <buttonid="saveexit" type="button">SAVE AND EXIT</button> </div> <div> ... </div> </div> </div> </div></div>
这是从firefox开发工具获取的CSS路径:
html.no-touch body div.remodal-wrapper.remodal-is-opened div.modaliAdesione.remodal.remodal-is-initialized.remodal-is-opened div.modal-dialog div.modal-content.modal-custom-content div.modal-footer div.row.text-center div.col-md-6.col-sm-6.col-xs-12 button#saveexit.btn.modal-button.full-btn
永远找不到对象。
- 问题1:如果元素在模态内部必须进行不同的管理?
- 问题2:如何最后单击按钮 saveexit 起作用?
这里共享了html的代码片段:https :
//codeshare.io/arLW9q
这是Java代码:
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=\"saveexit\"]")))
我也尝试过:
cssSelector: #saveexitcssPath: html.no-touch body div.remodal-wrapper.remodal-is-opened div.modaliAdesione.remodal.remodal-is-initialized.remodal-is-opened div.modal-dialog div.modal-content.modal-custom-content div.modal-footer div.row.text-center div.col-md-6.col-sm-6.col-xs-12 button#saveexit.btn.modal-button.full-btnxpath: //*[@id="saveexit"]
请注意:如果我document.getElementById(''saveexit'').click();
从浏览器的控制台运行,它将正常运行
答案1
小编典典我在脚本中使用jquery修复了它;
这是行代码:
js.executeScript("$(''#saveexit'').trigger(''click'');");
希望以后能对某人有所帮助。
我不知道为什么普通的javascript无法正常工作…
ElementClickInterceptedException:消息:拦截了元素单击:Selenium和Python无法单击元素
我试图单击“所有主题”和“所有状态”复选框,然后搜索结果。当我运行脚本时,会打开一个Chrome窗口,大小为1036x674。
如果我不理会窗口,则会出现元素点击拦截错误。如果我最小化或最大化窗口,则脚本可以正常工作。
我正在使用Selenium 3.141.0,chrome 76,chromedriver 76和python 3.6
chromedriver_path = r"C:\Users\path\to\chromedriver.exe"
browser = webdriver.Chrome(executable_path=chromedriver_path)
url = "http://www.ncsl.org/research/transportation/autonomous-vehicles-legislative-database.aspx"
topics_xpath = "//*[@id=\"dnn_ctr81355_StateNetDB_UpdatePanel1\"]/div[1]/div[2]/span/label"
states_xpath = "//*[@id=\"dnn_ctr81355_StateNetDB_UpdatePanel1\"]/div[2]/div[2]/span/label"
browser.get(url)
time.sleep(30)
elem = browser.find_element_by_xpath(topics_xpath)
elem.click()
time.sleep(5)
elem = browser.find_element_by_xpath(states_xpath)
elem.click()
但是我得到这个错误:
ElementClickInterceptedException:消息:拦截了元素单击:
元素
将要单击的CheckBox在我要单击的复选框的正下方。
Java Selenium-POM-html xpath-没有这样的元素:无法找到元素
看起来您的班级名称是随机生成的-您可以通过从不同的浏览器重新访问同一页面来进行检查(或者您可以尝试使用隐身方式)。如果确实如此,则需要另一种使用element的方法。一些例子:
- 如果使用此
Sign Up
按钮-使用xPath并在该元素中查找文本 - 考虑是否可以在不使用与UI(或任务的一部分)交互的情况下解决您的任务。阅读有关facebook API的信息,如果可能,请使用它代替UI。这样可以节省您很多时间,并避免麻烦。
java – Selenium单击“成功”元素,但实际上并没有单击它
我试过了:
if(!element.isdisplayed){ element.click }
这是我遇到问题的按钮:
<button> <div>New List</div> </button>
这是我的方法:
public marketing_lists_page navigatetoNewListPage() throws Throwable { try { int x = 0; while(x < 5) { newListBtn.click(); x++; } //newListPageHeader.isdisplayed(); } catch (NoSuchElementException e){ logs.errorDetails("Could not navigate to New List Page"); Assert.fail(); } return this; }
解决方法
webdriverwait wait = new webdriverwait(driver,timeOut); wait.until(ExpectedConditions.elementToBeClickable(locator));
Java 如何强制Selenium WebDriver单击当前不可见的元素?
如何解决Java 如何强制Selenium WebDriver单击当前不可见的元素??
Selenium根据以下条件确定元素是否可见(使用DOM检查器确定哪些CSS适用于你的元素,请确保你查看计算的样式):
- visibility != hidden
- display != none (is also checked against every parent element)
- opacity != 0 (this is not checked for clicking an element)
- height and width are both > 0
- for an input, the attribute type != hidden
你的元素符合这些条件之一。如果你没有能力更改元素的样式,请按照以下方法用javascript强制执行此操作(由于你使用了Selenium2 API,因此假设使用WebDriver):
((JavascriptExecutor)driver).executeScript("arguments[0].checked = true;", inputElement);
但这不会触发javascript事件,如果你依赖于该输入的change事件,那么你也必须触发它(有多种方法,最容易使用该页面上加载的任何javascript库)。
解决方法
我在FirefoxDriver中使用Selenium 2 Java API。当我填写表单时,根据表单输入,将复选框添加到页面。
我想使用Selenium模拟对这些复选框的单击。该元素在常规浏览器中可见且可用,但是selenium断言该元素不可见。
"Element is not currently visible and so may not be interacted with"
我可以强迫selenium忽略元素的不可见状态吗?如何强制Selenium与不可见元素进行交互?
关于selenium-无法单击模态内的元素和selenium无法点击元素的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于ElementClickInterceptedException:消息:拦截了元素单击:Selenium和Python无法单击元素、Java Selenium-POM-html xpath-没有这样的元素:无法找到元素、java – Selenium单击“成功”元素,但实际上并没有单击它、Java 如何强制Selenium WebDriver单击当前不可见的元素?等相关知识的信息别忘了在本站进行查找喔。
本文标签: