#c# #selenium
#c# #selenium
Вопрос:
У меня есть метод, при котором я открываю строку URL на новой вкладке TAB 1, которая загружает изображение, а затем я нажимаю на это изображение, что приводит к другой вкладке, которая является моей целевой вкладкой URL 2. Теперь я хочу сохранить этот целевой URL в виде строки. но он по-прежнему сохраняет URL-адрес TAB 1 в строке. Ниже приведен метод, который я написал
var selecttxt1 = Ad_Search_Direct_Link_Text.GetAttribute("value");
string getimpression = selecttxt1.Replace("C.ashx", "I.ashx");
driver.OpenInNewTab(getimpression);
driver.ClickElement(Click_Impression);
var aa = driver.Url;
Uri uri = new Uri(aa);`enter code here`
string finallandedurltext = uri.GetComponents(UriComponents.Scheme | UriComponents.Host, UriFormat.UriEscaped);
driver.Close();
Ответ №1:
Вы должны использовать Window Handle
при переключении между окнами для доступа к окну.
var selecttxt1 = Ad_Search_Direct_Link_Text.GetAttribute("value");
string getimpression = selecttxt1.Replace("C.ashx", "I.ashx");
driver.OpenInNewTab(getimpression);
driver.ClickElement(Click_Impression);
var aa = driver.Url;
Uri uri = new Uri(aa);`enter code here`
string newTabHandle = driver.WindowHandles.Last();
var newTab = driver.SwitchTo().Window(newTabHandle);
string finallandedurltext = newTab.GetComponents(UriComponents.Scheme | UriComponents.Host, UriFormat.UriEscaped);
driver.Close();
Надеюсь, это поможет.
Комментарии:
1. Спасибо за вашу помощь, каджал, но это не помогло и выдает исключение — Ошибка CS1061 ‘IWebDriver’ не содержит определения для ‘getComponents’ и не удалось найти метод расширения ‘getComponents’, принимающий первый аргумент типа ‘IWebDriver’ (вам не хватает директивы using или ссылки на сборку?)
2. Я понятия не имею о c #. однако концепция остается прежней. Для доступа к элементу вам нужно переключиться в другое окно. просто попробуйте
newTab.curreturl
, есть ли у вас такая команда в c #. однако Java у нас естьdriver.currenturl
3. вы можете проверить, как переключаться между окнами в c # toolsqa.com/selenium-webdriver/c-sharp /…
4. Спасибо за эту ссылку. Это проясняет, где я был неправ. Теперь это сработало. Я могу прочитать строку нового окна