硒无法在该网站上找到元素

时间:2018-10-04 18:02:25

标签: c# selenium

在以下网站上: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");

2 个答案:

答案 0 :(得分:3)

页面上有一个<frameset>和一个<frame>元素。 通过将驱动程序切换到框架可以解决此问题

driver.SwitchTo().Frame("frameMain");

答案 1 :(得分:0)

配置文件号,PIN,密码和登录按钮出现在框架上。您需要先打开框架,然后再对其执行任何操作。请使用下面的代码打开相框。

driver.SwitchTo().Frame(driver.FindElement(By.id("frameset")));