2016-05-09 3 views
0

Ich arbeite an einem IBM BPM-Portal, das neben einem Listenfeld den folgenden Dropdown-Pfeil enthält. Zum Anzeigen von Listenelementen in der DOM-Struktur ist ein Klick erforderlich.Klicken Sie nicht auf ein Dropdown-Bild einer IBM BPM-Listbox.

<div class="dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer dijitDownArrowButtonHover" role="presentation" data-dojo-attach-point="_buttonNode, _popupStateNode"> 
 
<input class="dijitReset dijitInputField dijitArrowButtonInner" type="image" role="presentation" readonly="readonly" tabindex="-1" alt="" src="/teamworks/script/coachNG/dojo/1.8.6/dojo/resources/blank.gif"/>

Image: enter image description here

auf dem Bild manuell Nach dem Anklicken erscheint folgende Listeneinträge.

<div id="dijit_form_FilteringSelect_1_popup_prev" class="dijitMenuItem dijitMenuPreviousButton" role="option" data-dojo-attach-point="previousButton" style="display: none;">Previous choices</div> 
 
<div id="dijit_form_FilteringSelect_1_popup0" class="dijitReset dijitMenuItem" role="option" item="0">--- Select ---</div> 
 
<div id="dijit_form_FilteringSelect_1_popup1" class="dijitReset dijitMenuItem" role="option" item="1">CJA Coversheet</div> 
 
<div id="dijit_form_FilteringSelect_1_popup2" class="dijitReset dijitMenuItem" role="option" item="2">Correspondence</div> 
 
<div id="dijit_form_FilteringSelect_1_popup3" class="dijitReset dijitMenuItem" role="option" item="3">Proof of Address</div> 
 
<div id="dijit_form_FilteringSelect_1_popup4" class="dijitReset dijitMenuItem" role="option" item="4">Proof of Identity</div> 
 
<div id="dijit_form_FilteringSelect_1_popup_next" class="dijitMenuItem dijitMenuNextButton" role="option" data-dojo-attach-point="nextButton" style="display: none;">More choices</div>

Ich habe folgende Möglichkeiten versucht, neben Dropdown auf das Bild zu klicken.

Code1: xOffset int = 0, yOffset = 0; Aktionen Aktionen = neue Aktionen (Treiber);
WebElement TreeObj = driver.findElement (By.xpath ("// * [@ id = 'widget_dijit_form_FilteringSelect_1']/descendant :: input [@ type = 'image']")); actions.moveToElement (TreeObj, xOffset, yOffset);
actions.moveToElement (TreeObj) .click(). Build(). Perform(); .

Code2: driver.findElement (By.xpath ("// * [@ id = 'widget_dijit_form_FilteringSelect_1']/Nachkomme :: input [@ type = 'image']")) klicken();

Code3:
driver.findElement (By.xpath ("(// input [@ type = 'image']) 2")) klicken();.

Fordern Sie andere zur Untersuchung an und helfen Sie mir, auf die Objekte zu klicken, um Objekte aus der Listbox auszuwählen.

Antwort

0

Drop-down kann nicht mit der normalen Aktionsklasse oder Klickmethode behandelt werden. Wir müssen Select Class dafür verwenden.

So versuchen, nur das aus ..

Webelement someobject = driver.findElement(By.xpath("//*[@id='widget_dijit_form_FilteringSelect_1']/descendant::input[@type='image']")); 

Select select = new Select(someobject); 

someobject.selectByVisibleText("CJA Coversheet"); 

Es gibt auch andere Methoden unten Werte von Tropfen zu wählen, ich Sie sichtbaren Text Verfahren zeige, .. Versuchen Sie einfach, dies auszuführen. Hoffe, es wird Ihnen helfen ..

Gehen Sie durch diesen Link. Es ist sehr hilfreich ..

https://www.seleniumeasy.com/selenium-tutorials/webdriver-select-methods-to-work-with-dropdowns

Do zu antworten, ob es lief oder nicht. Happy Learning :-)

+0

// Ich habe versucht, Option im Anschluss an die Listeneinträge zu überprüfen, aber vergeblich WebElement Drop-Down = driver.findElement (By.xpath ("// * [@ id = 'widget_dijit_form_FilteringSelect_1']/descendant :: input [@ type = 'image'] ")); \t Auswählen Auswählen = Neu Auswählen (Dropdown); Liste Optionen = select.getOptions(); für (WebElement EachObj: options) {für (int i = 0; i

+0

Bitte teilen Sie den Code. –

0

Endlich konnte ich eine Lösung finden, um Aktionen auf einer BPM-Listbox durchzuführen. Vielen Dank, Kishan, dass Sie sich etwas Zeit genommen haben, Ihr Vorschlag könnte für andere Web-Objekte nützlich sein, aber nicht für BPM-Listenfelder.

String parameter = "--- Select ---;CJA Coversheet;Correspondence;Proof of Address;Proof of Identity"; 
 
      String[] splitparameter= parameter.split(";"); \t 
 
      
 
      WebElement fr = driver.findElement(By.xpath("//iframe[@dojoattachpoint='frame']")); 
 
      driver.switchTo().frame(fr); 
 
      
 
      //driver.findElement(By.xpath("(//input[@type='image'])[1]")).click(); 
 
      Thread.sleep(2000); 
 
      
 
      driver.findElement(By.xpath("//*[@id='dijit_form_FilteringSelect_0']")).clear(); 
 
      driver.findElement(By.xpath("//*[@id='dijit_form_FilteringSelect_0']")).sendKeys("CJA"); 
 
      
 
      driver.findElement(By.xpath("//*[@id='widget_dijit_form_FilteringSelect_1']/descendant::input[@type='image']")).click();   
 
      driver.findElement(By.xpath("//*[@id='dijit_form_FilteringSelect_1']")).clear();  
 
           
 
      WebElement TreeObj=driver.findElement(By.xpath("//*[@id='widget_dijit_form_FilteringSelect_1']/descendant::input[@type='image']")); 
 
\t \t //.................................................................................................................. \t \t  
 
\t \t int xOffset = 2, yOffset = 2; 
 
\t \t Actions actions = new Actions(driver); \t  
 
\t \t \t actions.moveToElement(TreeObj, xOffset, yOffset).click().build().perform(); 
 
\t \t Thread.sleep(2000); 
 
\t \t List<WebElement> allListOptions = driver.findElements(By.xpath("//div[contains(@id,'FilteringSelect_1')]/descendant::div[contains(@id,'FilteringSelect') and @role='option' and @item>='0']")); 
 

 
//allListOptions.get(0).getText() 
 
\t \t for (int i = 0; i < splitparameter.length; i++) { \t \t  
 
\t \t \t String optionValue = allListOptions.get(i).getText(); 
 
\t \t  if (optionValue.equals(splitparameter[i])) { \t \t \t \t   
 
\t \t   
 
\t \t  \t System.out.println("Value verified with the expected value: "+ optionValue); 
 
\t \t  } else { \t \t \t \t   
 
\t \t   
 
\t \t  \t System.out.println("Failed to verify value with the expected value: "+ optionValue); 
 
\t \t  } 
 
\t \t } \t