2014-11-04 41 views
0

我使用PHP WebDriver和Selenium創建了一個測試。現在我想確保某個文本包含在元素中。我怎麼做?我試過了:PHP WebDriver聲明一個條件?

$web_driver->wait(3)->until(
    WebDriverExpectedCondition::textToBePresentInElement(WebDriverBy::cssSelector('.cart-price span.price'), '55,00 €') 
); 

但是這總是以TimeoutException結束。沒有辦法真正使用這樣的事情:

assertTrue(WebDriverExpectedCondition::textToBePresentInElement(WebDriverBy::cssSelector('.cart-price span.price'), '55,00 €')) 

感謝您的幫助!

回答

0

如果您使用的是PHP,你可能需要改變

max_execution_time 

在php.ini文件。

這設置PHP腳本可以運行的秒數。

+0

這不起作用。 TimeoutException被拋出是因爲$ driver在3秒內未能等待具有特定文本的元素。這不是PHP腳本超時。 – whhone 2014-11-04 22:16:03

0
$web_driver->wait(3)->until(
    WebDriverExpectedCondition::textToBePresentInElement(
     WebDriverBy::cssSelector('.cart-price span.price'), '55,00 €' 
    ) 
); 

對我來說已經是assertTrue了。如果它在3秒內找不到包含特定文本的元素,則會拋出TimeoutException

如果您在瀏覽器中看到文本,可能會發生WebDriverBy找不到任何元素,或者存在多個元素,並且驅動程序正在獲取與WebDriverBy匹配的另一個元素。