2016-10-19 6 views
1

Ich benutze Codeception testen erweiterte benutzerdefinierte Feld innerhalb einer WordPress-App.selectOption mit dynamischer ID & Name

Ich habe Probleme, es zu finden, die HTML-Auswahlbox zu finden. Dies liegt daran, dass es nie einen statischen Namen oder eine ID hat, z. B. id="acf-field-field_58079c4650b04_type" name="fields[field_58079c4650b04]. Die Zahlen ändern sich jedes Mal, was erwartet wird.

Mit codeceptions

$I->selectOption("contains(@id, '_type')]", 'number'); 

Ich habe nicht in der Lage gewesen, es zu erhalten, die es zu finden und es wirft diesen Fehler.

1) CreateNewFieldCest: Create a new advanced custom field 
Test tests/acceptance/CreateNewFieldCest.php:CreateNewField 
Step Select option "//input[@type='select' and contains(@id, '_type')]","number" 
Fail Field by name, label, CSS or XPath element with '//input[@type='select' and contains(@id, '_type')]' was not found. 

Scenario Steps: 

6. $I->selectOption("//input[@type='select' and contains(@id, '...","number") 
5. $I->wait(2) 
4. $I->fillField("//input[@type='text' and @class='label' a...","test field") 
3. $I->click("+ Add Field") 
2. $I->fillField("#title","test field") 
1. $I->amOnPage("/wp/wp-admin/post-new.php?post_type=acf") 


FAILURES! 
Tests: 1, Assertions: 0, Failures: 1. 
Script codecept handling the __exec_command event returned with error code 1 

Kann jemand einen Ansatz in der Lage empfehlen selectOption zu verwenden, um ein Auswahlfeld mit einer dynamischen ID und den Namen zu finden.

Antwort

0

Xpath scheint korrekt, es sollte in der Lage sein, es zu finden, wenn es in der Dom enthalten ist und es sichtbar ist.

Wird es von einer Ajax-Anfrage ausgefüllt?

Dann wird die Auswahl wahrscheinlich noch nicht gerendert oder aufgefüllt.

Sie können so etwas wie diese verwenden für die Ajax-Anfragen zu warten, um zu vervollständigen

$I->waitForJs('return jQuery.active == 0', 10); 
+0

Es durch eine Taste ausgelöst wird gedrückt, aber ich kann sehen, dass es als codeception gerendert wird erzeugt einen Screenshot auf Prüfungen nicht und es ist sichtbar: / – DMH