2012-10-17 3 views
0

계속 변화하는 웹 사이트에서 텍스트를 캡처하려고합니다. 그것은 다음과 같습니다셀렌을 사용하여 웹 페이지에서 텍스트 캡처

주문 ID : XXIO - 123344-3456

접두사가 일정하지만, 숫자가 항상 변경됩니다. 이 번호를 포착해서 저장하고 싶습니다. 정규식 패턴 regexp:Email.*@.*com을 사용하여 storeTextPresent을 시도했습니다. 그것은 사실을 돌려 주지만 그 값을 돌려주지는 않습니다. 물론 storeTextPresentTrue 또는 False 만 반환해야합니다. 이제 어떻게 정확한 값을 얻을 수 있습니까?

다음은 웹 페이지 부분의 스크린 샷입니다. 전체 페이지를 보여줄 수 없으므로 미안합니다.

enter image description here

그래서 어떤 아이디어들?

녹음 후이 테스트를 파이썬 리모콘으로 내 보냅니다. 그래서 파이썬 특정 코드가 더 환영합니다.

+0

실제로 시도했거나 작동하지 않은 코드를 표시 할 수 있습니까? –

+0

코드가 없습니다 ..... 웹 페이지 방문을 고려하십시오. 셀렌 IDE를 실행합니다. 녹음을 시작하십시오. 원하는 페이지 텍스트를 마우스 오른쪽 단추로 클릭하고 "storeTextPresent"를 선택하십시오. 그게 내가하려는 일 이었어. 이 페이지에서 "viewed 8 번"텍스트를 캡처하려고합니다. 오른쪽 상단 모서리에서 볼 수 있습니다. 당신은 "8 회"를 포착하고 싶습니다. 그럼 어떻게하니? –

답변

0

설명서를 한 번 보았습니다. storeText 명령이 Store Commands and Selenium Variables 아래에 있습니다. 내 생각 엔 storeTextPresent 대신 storeText를 사용하면됩니다.

또한 정규식 패턴을 사용하여 텍스트를 찾으려고 시도하는 대신 xpath, DOM 또는 CSS 로케이터를 사용해 볼 수 있습니다.

1

assertText 정규식 regexp:^XXIO-.+ 명령으로 문제를 해결할 수 있습니다. 확인해야 할 요소 ID와 함께 사용하십시오.

+1

이것은 arindam이 찾고있는 실제 텍스트가 아니라 부울을 반환하므로 원하는 결과를 제공하지 않습니다. –

0

아이디어 주셔서 감사하지만 나는 could'nt 텍스트에 대한 로케이터를 찾으십시오. 파이어 버그를 사용하여 캡처 한 코드입니다. 우리는 ID 번호 (6 호선)을 캡처 여기

<div class="chkOutBox"> 
<h2 id="tnq" class="marb10">Order Details</h2> 
<div class="ordRevAddressArea"> 
<div class="ordRevDelSlotArea"> 
<div class="clear"></div> 
<div class="bFont">Order ID:&nbsp; BBO-72262-171012</div> 
<div class="scartPgHdr"> 
<h3 class="catHdr">Fruits &amp; Vegetables</h3> 

는 ...... 누군가에 의해 .... 어떻게 위의 코드 에서 이것에 대한 가능한 위치 표시를 알아 내기 위해 말해 줄 수 수 있음 방법은 주문 ID를 가지고 페이지의 URL을 캡처하여 내 문제를 해결했다. 나는 주문 ID를 분리하고 그것을 정규식을 사용 ....... 그것은 단지 임시 해결책 .......

+0

CSS 로케이터를 사용할 수도 있습니다. html 마크 업이 많은 의미 론적 의미를 전달하지 않기 때문에 가장 좋은 것을 말하기는 어렵습니다. css 클래스는 의미 론적 의미가 아닌 시각적 스타일을 기반으로하는 것처럼 보입니다. 당신은'#tnq .bFont'를 시도 할 수 있습니다. 시맨틱 클래스 이름을 사용하는 것이 더 좋다. 또한 추가 정보를 대답으로 입력하는 대신 원래 질문을 편집하여이 정보를 추가해야한다고 제안 할 수 있습니다. –

+0

좋은 제안 ...... 나는 확실히 그것을 연습 할 것이다 ......... –

0

파이썬 코드

def get_order_id(driver): 
    """ Gets the order id, given an Order Details page. """ 
    try: 
     bFonts = driver.find_element_by_class_name("bFont") 
     for element in bFonts: 
      if "Order ID" in element.text: 
       return element.text.split()[-1] 
    except NoSuchElementException: 
     return None 

여기에는 클래스 이름 bFont이 절대로 변경되지 않는다고 가정합니다. 그렇다면 div 태그를 검색하여 다시 검색 할 수 있습니다. 또한 "주문 ID"가 발견된다고 가정합니다.

관련 문제