2015-04-15 4 views
0

Кто-нибудь нашел надежный способ добавить закладку в chrome с помощью ChromeDriver() ??Selenium ChromeDriver => добавить закладку

До сих пор я создал два метода расширения, которые, как я думал, могут работать. Увы, не делай. Вот то, что я до сих пор:

public static void CreateBookmark1(this IWebDriver webDriver) 
{ 
    Actions action = new Actions(webDriver); 
    action.SendKeys(OpenQA.Selenium.Keys.Control + "d").Build().Perform(); 
} 

public static void CreateBookmark2(this IWebDriver webDriver, string url, string name) 
{ 
    var js = String.Format("window.external.AddFavorite('{0}', '{1}')", url, name); 
    ((IJavaScriptExecutor)webDriver).ExecuteScript(js); 
} 

Я знаю, что CreateBookmark2() не будет работать из-за определенных ограничений яваскрипта внутри стека хром. Однако я полностью ожидал, что CreateBookmark1() будет работать так, как будто нажата комбинация клавиш CTRL+D.

Я также знаю, что для регрессионного тестирования этот прецедент редко будет действительным. Тем не менее, это ключевое требование демонстрации, которую я собираю, что есть функция .

Любые альтернативы, которые достигают того же конечного результата, приветствуются.

ответ

1

Возможно, вы можете получить доступ к Chrome Bookmarks API. Это, по сути, расширение, поэтому ChromeDriver должен иметь возможность взаимодействовать с ним через Driver.Manage() (я думаю)

+0

+1 -это для этого. это именно та альтернатива, в которой у меня нет проблем в исследовании, конечно же, она вводит еще одну движущуюся часть, которая дает возможность для неудачи - однако все, что может быть автоматизировано и повторено, является целью здесь. просто нужно забрать мою голову в космос сейчас ... сохранить идеи и альтернативы, которые придут (и хотелось бы увидеть быстрый пример того, как это может быть исправлено вместе :-)) –

Смежные вопросы