Für komplexe Website, die einen Schritt hierarchische Struktur (Region-Standort-Zone-ZoneID) hat, Ich versuche, eine dynamische XPath zum Zählen ZoneID (1..10)Selen XPath für komplexe dynamische Spannweite
zu bauen Structure
<div class="aic-tree-branch-content VAD2" ng-click="events.selectZone(site.id, zone.id)">
<span class="new-sprite unimported selected" ng-class="{'imported': zone.zoneImported, 'unimported': !zone.zoneImported, 'selected': zone.zoneName === selecteds.zone}"></span>
<span class="aic-tree-branch-content-name ng-binding" ng-bind-html="zone.zoneName | highlightFilter: model.searchTerm" ng-click="ui.selectTreeNode(zone.zoneName, 'zone')">VAD2</span>
<span class="aic-tree-branch-content-type zone-type ng-binding" ng-bind="'('+zone.designTypeName+')'">(M)</span>
<span class="aic-tree-branch-content-icon new-sprite zone-state in-creation-small" ng-class="ui.getZoneStatusIcon(zone.zoneState, zone.zonePhase)"></span>
</div>
-Code
public static void refreshAndOpenMultiZones(WebDriver driver, String SiteName, String zoneName) throws Exception {
driver.navigate().refresh();
for (int num=1; num<3; num++) {
logger.info("Open existing zone: " + SiteName + num + " in North America");
//Select desired zone in site
By ByZoneName = By.xpath("//span[.='"+zoneName+"']");
logger.info("Select Zone: "+ zoneName);
Utils.wait(5);
driver.findElement(ByZoneName).click();
logger.info("Wait for page to be loaded");
GeneralUtils.waitForElevationPage(driver, timeOutSec);
}
}
Das Problem: ("[. = // Spanne ' "+ zonename +"']") Wie die Codezeile von ByZoneName = By.xpath kombinieren; für dynamische zonename-ID (für die gleiche Ausführung VAD1, VAD2, VAD3 .... VAD10)
Actual: Diese Struktur korrekt für zonename = VAD1 und nach diesem in der zweiten curcle ausgeführt wird, kann nicht mit Ausnahme --- Unable Element zu finden: { "Methode": "XPath", "Selektor": "[. 'VAD'] // span"}
Frage: Wie dynamische Struktur schaffen für XPath mit Zonenname?
d.h. von ByZoneName = By.xpath ("// Spanne [=. ' "+ Zonename lastIndexOf (num) +."']"); mit Ausnahme fehlgeschlagen Unable Element zu finden: { "Methode": "XPath", "Selektor": "[. = '- 1'] // span"}
Können Sie Ihre Frage bearbeiten und deutlich den XML-Code anzeigen, den Sie mit XPath analysieren möchten? –