最近我受命使用Selenium Automation来实现MS CRM 365的自动化。我选择使用IntelliJ来使用Gradle和Java。
当前,我的问题是当我在表单页面上时,我无法访问该页面上的任何元素以进行数据输入或下拉选择。
我尝试使用iFrame切换:
driver.switchTo().frame(driver.findElement(By.cssSelector("#contentIFrame0")));
我尝试从ID,XPATH和CSS中进行选择。
代码是一个简单的driver.findElement;没有什么特别的。我似乎在最基本的部分上失败了。
driver.findElement(By.id("firstname_i")).click();
预期结果:要能够访问元素并处理Click,然后选择下拉菜单或文本输入即可。
实际结果:
org.openqa.selenium.NoSuchElementException: Unable to find element with css selector == #firstname_i
Image to Firefox Inspection of the Element
我想知道CSS中是否有某些东西阻止我访问该元素。我注意到“文本”框的元素位于几层之下,除非访问顶层,否则不会显示。但是,我无法找到该元素来遵循流程。希望这是有道理的。
答案 0 :(得分:0)
因此,经过一番玩味之后,我注意到我的iframe开关正在工作,但是我尝试访问的元素是正确的,只是不完整,不确定是否与其他任何人相关,但是我必须添加一个方法通过选择初始元素“名称”,然后选择第二个元素作为输入“ name_i”来解决我的元素问题。
好像我最初尝试选择“ name_i”一样,我得到了整个“找不到元素”,因为CSS将其设置为不可见,除非被鼠标悬停/单击第一个元素(覆盖?)激活。
在整个表单页面上似乎都是这种情况。
以前从未使用过MS 365,所以我不知道这是否可行甚至常见。
谢谢。