2017-09-11 35 views
3

我正在使用Python/Selenium提交表單,然後使用類ID使用預期條件來等待下一頁加載的Web驅動程序。Python/Selenium:WebDriverWait預期條件中的邏輯運算符

我的問題是有兩個頁面可以顯示,但他們不共享一個獨特的元素(我可以找到)不在原始頁面中。一頁有一個獨特的類是mobile_txt_holder,另一個可能的頁有一個類ID爲notfoundcopy我想用一個等待mobile_txt_holdernotfoundcopy出現。

是否可以將兩個預期條件合併爲一個等待?

的什麼,我期待的基本想法,但顯然是行不通的:

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:

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

+0

[CSS選擇器 「(A或B)和C」?](HTTPS的可能重複://堆棧overflow.com/questions/7517429/css-selector-a-or-b-and-c) – JeffC

+0

@JeffC我是新來的Python,所以也許我錯了,但我正在尋找一個Python的具體答案。我相信你提供的鏈接只是爲了CSS,而不是用來搜索CSS的Python。 – Aiden

+0

使用Python和Selenium,您可以使用CSS選擇器來查找元素。您可以創建一個CSS選擇器,鏈接中的示例,使用OR邏輯,以便您可以獲得所需的內容。 – JeffC

回答

2

除了泡吧了2 expected_conditions通過or節中,我們可以很容易地構造一個CSS照顧我們的要求下CSS看起來無論是對EC無論是在mobile_txt_holder類或notfoundcopy類:

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

謝謝!我不明白@JeffC想告訴我什麼。我會在早上嘗試一下,然後回來。現在我的頭腦裏有道理。讓我們看看我能否將它轉化爲明天的代碼。 – Aiden

+0

最好不要回答是重複的問題。它只是阻塞了更多的網站,可以通過已發佈的重複鏈接回答相同的問題。 – JeffC