2017-09-11 1 views
3

파이썬/셀레늄을 사용하여 양식을 제출하면 클래스 id를 사용하여 예상 조건을 사용하여로드 할 웹 페이지를 기다리는 웹 드라이버가 있습니다.Python/Selenium : WebDriverWait의 논리 연산자

내 문제는 두 페이지가 표시 될 수 있지만 원래 페이지에없는 고유 요소 (찾을 수 있음)를 공유하지 않는다는 것입니다. 한 페이지의 고유 한 클래스는 mobile_txt_holder이고 다른 가능한 페이지의 클래스 ID는 notfoundcopy입니다. mobile_txt_holder 또는 notfoundcopy을 표시하는 대기 시간을 사용하고 싶습니다.

예상되는 두 조건을 하나의 대기 상태로 결합 할 수 있습니까?

기본 내가 찾던의 생각하지만, 분명이 작동하지 않습니다 :

WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.CLASS_NAME, "mobile_txt_holder"))) 
or .until(EC.presence_of_element_located((By.CLASS_NAME, "notfoundcopy"))) 

는 정말 그냥 소스를 구문 분석 할 수 있도록 다음 페이지가로드 될 때까지 기다려야 프로그램이 필요합니다.

샘플 HTML : 외에도 최대 2 expected_conditionsor 절을 통해 클럽 활동에서

<p class="notfoundcopy">Unfortunately, the number you entered is not in our tracking system.</p>

+0

[CSS 셀렉터 "(A 또는 B) 및 C"의 가능한 복제본?] (https : // stack overflow.com/questions/7517429/css-selector-a-or-b-and-c) – JeffC

+0

@JeffC 필자는 파이썬에 익숙하지 않으므로 아마도 틀 렸습니다. 그러나 파이썬 특정 답변을 찾고 있습니다. 나는 당신이 제공 한 링크가 단지 CSS를위한 것이지 파이썬이 CSS를 검색하는 데 사용되는 것은 아니라고 생각한다. – Aiden

+0

Python과 Selenium을 사용하면 CSS 선택기를 사용하여 요소를 찾을 수 있습니다. 당신은 당신이 원하는 것을 얻을 수 있도록 OR 로직을 사용하는 링크의 예제 인 CSS 선택기를 만들 수 있습니다. – JeffC

답변

2

, 우리는 쉽게 다음 CSS는 EC에 대한 하나 mobile_txt_holder을에 두 볼 것이다 우리의 요구 사항을 돌볼 수있는 CSS을 구성 할 수 있습니다 클래스 또는 notfoundcopy 클래스 :

element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, ".mobile_txt_holder, .notfoundcopy")) 
+0

감사! @ JeffC이 내게 말하려고했던 것을 이해하지 못했습니다. 나는 이것을 아침에 다시 시도하고 다시 게시 할 것입니다. 이제 내 머리 속에 의미가 있습니다. 내일 코드로 변환 할 수 있는지 봅시다. – Aiden

+0

중복 된 질문에는 대답하지 않는 것이 좋습니다. 이미 게시 된 중복 링크로 대답 할 수있는 동일한 질문으로 사이트를 막히게됩니다. – JeffC