Selen-Element Locators - verschachtelte div-Klasse
Kann mir jemand helfen, wie passend zu diesem element, ich möchte klicken Sie Kanada von der Liste der Länder. Selenium (IDE/WebDriver) ist nicht zu finden, das element.
Ich habe versucht, in der Webdriver:
driver.FindElement(By.XPath(".//*[@class='slick-viewport']/*[@class='grid-canvas']/*[@class='ui-widget-content slick-row odd']/*[@class='slick-cell l1 r1 active selected']")).click();
Firepath gibt diese XPath:
.//*[@id='assetsTable']/div[5]/div/div[5]/div[2]
Keiner dieser arbeiten. Natürlich, das Tue ich nicht korrekt. Die ids werden dynamisch erzeugt und verschachtelt, also ich finde es sehr schwierig herauszufinden. Kann jemand schauen und mir sagen, der richtige Weg für die locator-bitte?
Vielen Dank
PS: Sieht aus wie darf ich nicht auf Bild hochladen. So kopieren eingefügt, die den Inhalt unter:
<!DOCTYPE html>
<html class="dj_gecko dj_contentbox">
<head>
<body id="bodyID">
<div id="pageDiv" class="page">
<div id="header">
<div id="main">
<ul id="mainMenu" class="menuTab">
<div id="partialHost" style="height: 345.117px;">
<div id="assetsBreadcrumbDiv">
<div id="assetsGridDiv">
<ul id="assetMenu" class="menuTab">
<div id="assetsTable" class="defaultGrid slickgrid_109601 ui-widget" style="overflow: hidden; outline: 0px none; position: relative; height: 269.117px; width: 1562px;">
<div style="position:fixed;width:0;height:0;top:0;left:0;outline:0;" hidefocus="" tabindex="0"></div>
<div class="slick-header ui-state-default" style="overflow:hidden;position:relative;">
<div class="slick-headerrow ui-state-default" style="overflow: hidden; position: relative; display: none;">
<div class="slick-top-panel-scroller ui-state-default" style="overflow: hidden; position: relative; display: none;">
<div class="slick-viewport" style="width: 100%; overflow: auto; outline: 0px none; position: relative; height: 242px;">
<div class="grid-canvas" style="width: 1545px; height: 5975px;">
<div class="ui-widget-content slick-row odd" style="top:775px">
<div class="ui-widget-content slick-row even" style="top:800px">
<div class="ui-widget-content slick-row odd" style="top:825px">
<div class="ui-widget-content slick-row even" style="top:850px">
<div class="ui-widget-content slick-row odd" style="top:875px">
<div class="slick-cell l0 r0 selected">CA</div>
<div class="slick-cell l1 r1 active selected">CANADA</div>
<div class="slick-cell l2 r2 selected">Y</div>
<div class="slick-cell l3 r3 selected"></div>
<div class="slick-cell l4 r4 selected">CA</div>
</div>
<div class="ui-widget-content slick-row even" style="top:900px">
<div class="ui-widget-content slick-row odd" style="top:925px">
<div class="ui-widget-content slick-row even" style="top:950px">
Du musst angemeldet sein, um einen Kommentar abzugeben.
//div[text()="CANADA"] sollte funktionieren. Wenn Sie nur wollen, dass bestimmtes element ist.
Nicht verwenden * , explizit in XPath-Abfragen.
Dies funktioniert:
Was bekommen Sie, wenn Sie versuchen, Ihren XPath-query direkt in FireBug?
$x("//div[@class='slick-cell l1 r1 active selected']")
ist , tut es gar nichts finden?div[text()='CANADA']
arbeiten konnte. Hast du das ausprobiert? Meine ursprüngliche XPath funktioniert OK hier BTW. Vielleicht gibt es etwas anderes zu spielen. Haben Sie versucht diese in Chrome überhaupt?