Selenium,SimpleBrowser.WebDriver 无法从 Frame 中提取数据
Selenium, SimpleBrowser.WebDriver cannot pull data from Frame
我试图从框架内部提取结果,但是当我在 VS 上检查页面源时,无法显示我试图从中提取内容的框架。 Selenium 看不到框架内部,因此最终的 xpath 不起作用。我看不到我错过了什么。
PS: containerNo为字符串,值为GFSSEA1610,刚补上去测试
IWebDriver driver = new SimpleBrowserDriver();
driver.Navigate().GoToUrl("http://aplinfo.apl.com/tracking/");
IWebElement query = driver.FindElement(By.Id("trace"));
query.SendKeys(containerNo);
query.Submit();
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
wait.Until(d => d.Url.StartsWith("http://homeport.apl.com/gentrack/", StringComparison.OrdinalIgnoreCase));
driver.FindElement(By.Name("bodyframe"));
driver.SwitchTo().Frame("bodyframe");
result = driver.FindElement(By.XPath("/html/body/table")).Text;
我是这样解决的:
IWebDriver Frame = driver.SwitchTo().Frame("bodyframe");
或
string frameHTML= driver.SwitchTo().Frame("bodyframe").PageSource;
我试图从框架内部提取结果,但是当我在 VS 上检查页面源时,无法显示我试图从中提取内容的框架。 Selenium 看不到框架内部,因此最终的 xpath 不起作用。我看不到我错过了什么。
PS: containerNo为字符串,值为GFSSEA1610,刚补上去测试
IWebDriver driver = new SimpleBrowserDriver();
driver.Navigate().GoToUrl("http://aplinfo.apl.com/tracking/");
IWebElement query = driver.FindElement(By.Id("trace"));
query.SendKeys(containerNo);
query.Submit();
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
wait.Until(d => d.Url.StartsWith("http://homeport.apl.com/gentrack/", StringComparison.OrdinalIgnoreCase));
driver.FindElement(By.Name("bodyframe"));
driver.SwitchTo().Frame("bodyframe");
result = driver.FindElement(By.XPath("/html/body/table")).Text;
我是这样解决的:
IWebDriver Frame = driver.SwitchTo().Frame("bodyframe");
或
string frameHTML= driver.SwitchTo().Frame("bodyframe").PageSource;