在以下网站上:https://netbank.nedsecure.co.za 有一个个人资料编号的输入框。
但是,Selenium无法找到该元素,并引发了NoSuchElementException。我尝试了其他Stackoverflow问题中的建议,有关使用等待以确保页面已加载的问题。
这是一些失败的代码:
var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
var driver = new ChromeDriver(path);
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);
driver.Url = "https://netbank.nedsecure.co.za";
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(20));
wait.Until(drv => drv.FindElement(By.Id("ProfileId")));
var profileInput = driver.FindElementById("ProfileId");
答案 0 :(得分:3)
页面上有一个<frameset>
和一个<frame>
元素。
通过将驱动程序切换到框架可以解决此问题
driver.SwitchTo().Frame("frameMain");
答案 1 :(得分:0)
配置文件号,PIN,密码和登录按钮出现在框架上。您需要先打开框架,然后再对其执行任何操作。请使用下面的代码打开相框。
driver.SwitchTo().Frame(driver.FindElement(By.id("frameset")));