请参阅截图。我正在尝试单击“取消”按钮,如我的屏幕截图所示。即使存在元素的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毫秒
答案 0 :(得分:0)
我猜id值正在动态变化。 试试这个定位器
By.CssSelector("input[value='Cancel']");
答案 1 :(得分:0)
您尝试获取的ID实际上并不存在。这是因为每次浏览器创建按钮时,id都会动态更改,无论是第一次访问它还是其他操作(如javascript)。
您可以使用属性和XPath来获取取消按钮,因为它是静态的,并且不会在会话之间发生变化。
C#代码
FindElement(By.XPath("//input[contains(@value, 'Cancel')]"));