2017-01-27 1 views
4

Selenium으로 Chrome 바로 가기를 보내려면 어떻게해야하나요? 나는 WebElements 함께 할 수 없다 Ctrl 키 + S, Ctrl 키 + T 또는 Ctrl 키 + P처럼 바로 가기를 의미한다. 비슷한 질문을 많이 읽었지 만 제안 된 해결책 중 어느 것도 나를 위해 일하지 않습니다.Selenium ChromeDriver C# - 바로 가기 브라우저를 보내는 방법

  1. 「표준」방법 :

    내가 성공하지 않고 다음의 모든 코드를 시도의 브라우저에 나는 새 탭을 열려면 (Ctrl 키 + T)를 가정 해 봅시다

    IWebElement body = myDriver.FindElement(By.TagName("body")); 
    body.SendKeys(Keys.Control + "t"); 
    
  2. 조치 방법 :

    Actions action = new Actions(myDriver); 
    action.SendKeys(Keys.Control + "t").Build().Perform(); 
    
  3. ChromeDriver 방법 1 :

    if(myDriver is ChromeDriver) 
    { 
        ChromeDriver chromeDriver = myDriver as ChromeDriver; 
        chromeDriver.Keyboard.SendKeys(Keys.Control + "t"); 
    } 
    
  4. ChromeDriver 방법 2 : 첫 번째 방법은 내가 크롬 이외의 WebDriver과 나를 위해 일한 했나요 것을

    ChromeDriver chromeDriver = myDriver as ChromeDriver; 
    chromeDriver.Keyboard.PressKey(Keys.Control); 
    chromeDriver.Keyboard.PressKey("t"); 
    chromeDriver.Keyboard.ReleaseKey(Keys.Control); 
    chromeDriver.Keyboard.ReleaseKey("t"); 
    

알 수 있습니다.

  • 셀레늄 3.0.1
  • ChromeDriver 2.27.440174

그리고 내 드라이버의 초기화는 정말 기본입니다 : 내가 사용

ChromeOptions options = new ChromeOptions(); 
this.myDriver = new ChromeDriver(/* my path */, options); 

어떤 아이디어?

답변

1

issue 인 것으로 보입니다. 당신은 chromedriver와 키 조합을 사용할 수 없습니다,하지만 당신은 여전히 ​​대안으로 JavaScript을 사용할 수 있습니다 : 나는 잘 동작과 키 조합을 사용하고

IJavaScriptExecutor js = myDriver as IJavaScriptExecutor; 
js.ExecuteScript("window.open()"); // Open new browser tab like `CTRL + t` do 
+1

이 대안에 감사드립니다. 핵심 이벤트를 보내는데 집중했지만 솔루션이 완벽하게 작동했습니다. –

1

불행하게도 this issue 현재 셀레늄에 의해 전송 Ctrl 키 + T처럼 바로 가기에 반응 크롬을 방지 할 수 있습니다.

0

. 저는이 코드 예제를 수년 동안 사용해 왔으며 Chrome, Firefox 및 IE와 함께 작동합니다.

public void SelectAll() 
{ 
    (new Actions(yourDriverInstance)).SendKeys(Keys.Control).SendKeys("a").Perform();    
} 

나는 뭔가를 놓치고 있습니까 ???