当前位置: 首页 > 编程语言 > C#

SeleniumWaitdoesnotwaitfortheElementtobeclickable

时间:2023-04-10 15:03:11 C#

SeleniumWaitdoesnotwaitfortheElementtobeclickable我有一个包含按钮的动态加载页面。我正在尝试使用硒中的C#绑定等待按钮可点击。我有以下代码:WebDriverWaitwait=newWebDriverWait(Driver.Instance,TimeSpan.FromSeconds(30));wait.Until(ExpectedConditions.ElementToBeClickable(By.Id("addInspectionButton")));varbutton=Driver.Instance.FindElement(By.Id("addInspectionButton"));按钮.点击();这是行不通的。永远不会触发点击事件。selenium脚本不会抛出异常,提示ID为“addInspectionButton”的元素不存在。它只是不能点击它。如果我在等待语句和获取按钮元素句柄的行之间添加一个Thread.Sleep(3000),它就可以工作。我在这里没有正确使用ExpectedConditions.ElementToBeClickable吗?原来事件是动态添加到页面后绑定到按钮上的。所以按钮被点击但没有任何反应。代码中放置的睡眠线程只是给客户端事件时间绑定。我的解决方案是单击按钮,检查预期结果,如果预期结果不在DOM中,则重复。由于预期的结果是打开一个表单,我正在轮询DOM是这样的:希望你多注意—button.Click();//单击按钮使表单打开varforms=Driver.Instance.FindElements(By.Id("inspectionDetailsForm"));//查询表单的DOMvartimes=0;//记录按钮被点击的次数while(forms.Count本文收集自网络,不代表一个职位,如涉及侵权,请点击右边联系管理员删除,如需转载请注明出处: