Im using Ghost Driver (PhantomJS) в моем проекте C#. У меня есть вопрос. Селен имеет PhantomJSWebElement и PhantomJSDriver. Im создание PhantomJSDriverSelenium IWebElement to PhantomJSWebElement
PhantomJSDriverService service = PhantomJSDriverService.CreateDefaultService();
service.IgnoreSslErrors = true;
service.LoadImages = false;
service.Start();
PhantomJSDriver ghostDriver = new PhantomJSDriver(service);
А затем пытается найти элементы с помощью XPath
List<string> retVal = new List<string>();
var aElements = ghostDriver.FindElementsByXPath("//div[@id='menu']//a[@href]");
foreach(PhantomJSWebElement link in aElements)
{
try
{
retVal.Add(link.GetAttribute("href"));
}
catch (Exception)
{
continue;
}
}
Так у меня есть ошибка при литье IWebElemet
в PhantomJSWebElement
.
PhantomJSWebElement el = (PhantomJSWebElement)link;
также нет работы (бросающийся литье исключая). Таким образом, вопрос в том, как получить PhantomJSWebElement от PhantomJSDriver, возвращает только IWebElement (или их коллекцию) при поиске.
Этот вопрос трудно ответить без публикации точного текста исключения. Кроме того, вы уже прошли через это исключение с вашим отладчиком? Что такое 'type'' link? – Brian
У меня есть русская версия на VS. Текст: Не удалось привести объект объекта. OpenQA.Selenium.Remote.RemoteWebElement "к типу" OpenQA.Selenium.PhantomJS.PhantomJSWebElement ". Он выбрасывает ссылку PhantomJSWebElement в aElements – user2598575
Я предполагаю, что' link' имеет тип 'WebElement'. 'PhantomJSWebElement' наследуется от' RemoteWebElement'. Вы пробовали кастинг следующим образом: 'PhantomJSWebElement el = (RemoteWebElement) link;' вместо этого? – Brian