2013-09-27 10 views
2

Selenium Webdriver를 사용하여 하이퍼 링크를 클릭하는 동안 문제가 있습니다. CssSelector뿐만 아니라 XPath를 사용하여 시도하고 아무것도 작동하는 것. 내가하려는 것은 Google 텍스트를 클릭하는 것입니다. .Selenium Webdriver를 사용하여 하이퍼 링크를 클릭하십시오.

<div class="hello"> 
    <div class="test"> 
    <table class="first first-table"> 
    <tbody> 
    <tr> 
    <td class="second-table"> 
    <a id="dummyID" href="https://www.google.com" target="_blank">Google</a> 
    </td> 
    </tr> 
    </tbody> 
    </table>` 

내가 driver.FindElement 시도 (By.XPath을 ("// * [ID가 = 'dummyID'@]"))) (클릭; 나는 또한 링크를 찾기 위해 href를 사용하여 시도했다 ... 거의 모든 것. 항상 "요소를 찾을 수 없습니다"예외가 발생합니다. 누구든지 어떤 제안이 있습니까?

+3

가 프레임 또는 iframe에 포함 된 링크가 사용할 수 있습니까? – Richard

+0

@ 리차드 그건 좋은 질문이야. –

+0

방화범을 사용하여 HTML을보고, 어떤 프레임/iframe을 볼 수 없습니다. – user1493537

답변

3

이 시도 : 요소가 프레임 또는 iframe 내에있는 경우

driver.FindElement(By.LinkText("Google")).Click(); 

봐 볼 수 있습니다. 쉽게 ID로 찾을 수 있습니다

driver.SwitchTo().Frame("frameID"); 
+0

다음은 무엇이 문제입니까? driver.FindElement (By.XPath ("// * [@ id = 'dummyID']")). –

+0

나를 믿어, 나는 그것을 시도하고 그것은 작동하지 않았다. – user1493537

+0

프레임이 없습니다. 적어도 페이지 소스는 어떤 프레임도 표시하지 않습니다. – user1493537

0

을 :이 경우, 당신은 사용해야합니다

driver.FindElement(By.id("dummyID")).Click(); 

또는 당신은 당신의 시나리오에서이 XPath를 사용할 수 있습니다

driver.FindElement(By.XPath("//a[@id='dummyID']")).Click(); 

당신에게 ID로 요소를 직접 찾을 수 있으므로 쉽고 효율적인 접근 방식입니다. 이 코드 조각 중 하나라도 원하는 클릭을 얻으시기 바랍니다. 둘 다 똑같이 작동해야합니다. 확실히 작동 할 것입니다.

1

당신은

driver.FindElement(By.LinkText("Google")).Click(); 
관련 문제