2016-07-23 1 views
4

웹 페이지에 다음 요소가 있다고 해봅시다.nightwatch.js의 링크 텍스트를 사용하여 링크를 클릭하는 방법

<a href="/dynamic1">One</a> 
<a href="/dynamic2">Two</a> 
<a href="/dynamic3">Three</a> 

나는 텍스트 Two와 링크를 클릭합니다. 링크 텍스트을 사용하여 해당 요소를 식별하거나 클릭하는 방법 (예 : id 또는 클래스)

있음 .Net driver.findElement(By.linkText("Images")).click();을 사용할 수 있습니다. elements() 방법의 첫 번째 PARAM은 로케이터 전략 사용 link text입니다 nightwatch.js

답변

2

로케이터 By.linkText는 내부적으로 XPath를 사용합니다. 내부 HTML에 따라

.useXpath()  // every selector now must be XPath 
.click("//a[text()='Two']") 
.useCss()  // we're back to CSS now 

주, 당신은 아이들을 연결해야하고, 공간 트림 :

그래서하는 XPath와 예에서 두 번째 링크를 클릭합니다

.click("//a[normalize-space(.)='Some link']") 
1

에 상응하는 무엇입니까 -이 지원됩니다

client 
    .url('http://website.org') 
    .waitForElementVisible('body', 1000) 
    .elements('link text', 'Two', function (result) { 

    for (var i = 0; i < result.value.length; i++) { 
     var element = result.value[i]; 

     // do something 
    } 
    }) 
    .end(); 
1

나를 위해 일한 유일한 방법은 다음을 사용하는 것입니다 :

.useXpath() 
.click("//*[contains(text(), 'Two')]") 
.useCss()