2017-09-13 6 views
1

이 상자의 텍스트를 모두 가져 오려고합니다. 읽으려고하는 부품 번호는 실제로 148474-1입니다. 그러나 그것에서 읽을 때 나는 148474를 얻는다.이 텍스트를 모두 선택하는 방법 Selenium WebDriver C#

HTML :

<div class="SE-Content-PartSearch-Grid-Row-PartNumber-Label" style="width: 10%;"> 
    <p> 
     <span class="SE-PartSearchResult-selected">148474</span>-1 
    </p> 
</div> 

코드 :

// This is the one without an Alias 
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(4); 
IList<IWebElement> partNumbers = 
    driver.FindElements(By.ClassName("SE-PartSearchResult-selected")); 
partNumberWithoutAlias = partNumbers[0].Text; 

답변

1

아래

0

이 작업을 수행 할 수 있습니까?

<div class="SE-Content-PartSearch-Grid-Row-PartNumber-Label" style="width: 10%;"> 
 
    <p> 
 
     <span class="SE-PartSearchResult-selected">148474-1</span> 
 
    </p> 
 
</div>

<span> 내부 -1을 설정합니다. 이미 첫 번째 부분을 가지고 코드 -

IList<IWebElement> partNumbers = driver.FindElements(By.ClassName("SE-Content-PartSearch-Grid-Row-PartNumber-Label")); 
partNumberWithoutAlias = partNumbers[0].Text; 
+1

이것은 내 것이 아닌 웹 사이트에 있습니다. 만약 내가 할 수 있으면. 나는 전에 이것을 본 적이 없다. – weknowgp

+0

그리고'By.ClassName ("SE-PartSearchResult-selected")'에'Parent'를 얻을 수 있습니까? –

0

봅니다, 그래서 그냥 두 번째 부분을 가져오고 둘을 연결.

string firstPart = partNumberWithoutAlias = partNumbers[0].Text; 
string secondPart = driver.FindElements(By.ClassName("SE-Content-PartSearch-Grid-Row-PartNumber-Label"))[0].FindElements(By.TagName("p"))[0].Text; 

string allText = firstPart + secondPart; 

참고 : 클래스 - SE-Content-PartSearch-Grid-Row-PartNumber-Label 한 번 또는 두 번 이상 사용할 수 있으며,이에 따라 인덱스 위치하여 올바른 하나를 가져 오는 경우 당신은 확인해야합니다.