【发布时间】:2018-10-18 15:05:12
【问题描述】:
请参考截图。我正在尝试单击“取消”按钮,如我的屏幕截图所示。即使元素的 ID 存在,我也无法单击该按钮。弹出窗口既不是一个新窗口,对我来说也不是一个警报。我试图搜索是否是窗口句柄的问题。但是当我搜索窗口句柄时它只给了我一个数字:
Set<String> handles = driver.getWindowHandles();
System.out.println(handles);
收到错误信息 -
线程 "main" org.openqa.selenium.NoSuchElementException 中的异常:没有这样的元素:无法找到元素:{"method":"id","selector":"ctl00_ContentPlaceHolder1_g_64d6331f_e460_4a48_890f_b7d7257093d9_ctl00_rtbComments"} (会话信息:chrome=65.0.3325.181) (驱动程序信息:chromedriver=2.34.522940 (1a76f96f66e3ca7b8e57d503b4dd3bccfba87af1),platform=Windows NT 6.1.7601 SP1 x86_64)(警告:服务器未提供任何堆栈跟踪信息) 命令持续时间或超时:0 毫秒
【问题讨论】:
-
也许您要查找的元素在某个 iframe 中,请确保在执行任何操作之前切换到成名。
-
您的错误消息中的 ID 与 DOM 中的内容不匹配。
ctl00_ContentPlaceHolder1_g_64d6331f_e460_4a48_890f_b7d7257093d9_ctl00_rtbComments来自错误消息,但是您在屏幕截图中突出显示的内容以_rbCancel_input结尾...为什么您不能仅通过按钮的 ID 找到? -
你能发布你的代码吗?
-
抱歉,我的截图中显示的代码不正确。应该是:driver.findElement(By.id("ctl00_ContentPlaceHolder1_g_64d6331f_e460_4a48_890f_b7d7257093d9_ctl00_rbCancel_input")).click();
-
你不应该使用有数字的属性值(它可以改变),尝试使用类名
标签: selenium selenium-webdriver selenium-chromedriver