2016-07-12 6 views
1

das ist HTML, ich will es nur durch Selen Web-Treiber (Java) testen. Es ist ein FehlerSelektieren Radiobutton durch Selen Java

Exception in thread "main" org.openqa.selenium.ElementNotVisibleException: Element nicht sichtbar

unter HTML sein kann helfen Ihnen, meine Frage zu verstehen

<html> 
<head></head> 
<body> 
<ul class="list-unstyled"> 
<li> 
<label class="chkbox"> 
<input type="radio" required="required" data-optioncode="displayDefaultForm"   data-statusid="22" data-module="19" name="status"> 
<span class="lbl"></span> 
</label> 
<button class="btn module-status-style btn-xs mb5" style="background-color: #ffffff; border-color: #e1e1e1; color:#666666;">Unqualified</button> 
</li> 
<li> 
<label class="chkbox"> 
<input type="radio" required="required" data-optioncode="displayDefaultForm" data-statusid="23" data-module="19" name="status"> 
<span class="lbl"></span> 
</label> 
<button class="btn module-status-style btn-xs mb5" style="background-color: #e4e7ea; border-color: #cccccc; color:#636e7b;">Attempted to Contact</button> 
</li> 
<li> 
<label class="chkbox"> 
<input type="radio" required="required" checked="" data-optioncode="displayDefaultForm" data-statusid="24" data-module="19" name="status"> 
<span class="lbl"></span> 
</label> 
<button class="btn module-status-style btn-xs mb5" style="background-color: #5bc0de; border-color: #46b8da; color:#ffffff;">Contacted</button> 
</li> 
<li> 
<label class="chkbox"> 
<input type="radio" required="required" data-optioncode="displayConvertedForm" data-statusid="25" data-module="19" name="status"> 
<span class="lbl"></span> 
</label> 
<button class="btn module-status-style btn-xs mb5" style="background-color: #1caf9a; border-color: #17a08c; color:#ffffff;">Converted</button> 
</li> 
</ul> 
</body> 
</html> 

bitte helfen Sie mir Radio-Button durch Java selenuim

+0

Zeigen Sie Ihren Java-Code. – raduation

+0

Ich habe auf Radiobutton durch Xpath 'driver.findElement (By.xpath (".// * [@ id = 'frm-modulstatus>'/div [1]/ul/li [4]/label/input ")). click(); ' – niazi

+0

@niazi als Ihr bereitgestelltes HTML, mit dem es kein Element gibt id 'frm-modulstatuses ... ... könntest du uns sagen, welche Optionsschaltfläche du auswählen möchtest ?? –

Antwort

0

Ich kann mir zwei Szenarien vorstellen, warum Ihre Optionsfelder nicht sichtbar sind.

  1. Ihr Radio-Button ist nicht sichtbar, durch die Zeit, Ihr Skript klickt es
  2. Ihr Radio-Button in der Tat verborgen ist und irgendwie müssen Sie es zum Beispiel erscheinen, klicken Sie auf eine Schaltfläche oder eine Liste erweitern.

Die allgemeinen Lösungen sind:

1: Wenn Ihr Radioknopf durch die Zeit, Ihr Skript auf sie nicht sichtbar ist klickt: Sie müssen warten, bis es zu erscheinen,

2: Wenn Ihr Optionsfeld ausgeblendet ist, müssen Sie es irgendwie erscheinen lassen, ich weiß nicht, wie Ihre Webseite genau aussehen wird, also müssen Sie das herausfinden Ihre eigene ODER zeigen Sie uns Ihre Webseite.

1

zu überprüfen Die Ausnahme bedeutet, dass das Element n ist ot sichtbar. Selenium kann nicht auf Elemente wirken, die nicht sichtbar sind, da es das Benutzerverhalten emulieren soll. Überprüfen Sie Ihre CSS-Stile und stellen Sie sicher, dass das Element, auf das Sie klicken möchten, sichtbar ist. Wenn Sie auf ein ausgeblendetes Element klicken müssen, verwenden Sie JavascriptExecutor, um einen JavaScript-Klick direkt auszuführen.

1

nach Ihren bereitgestellt HTML Sie wie unten versuchen sollte, ein Radio zu wählen: -

String textToFindRadio = "Unqualified" 
//you can provide also "Attempted to Contact" or "Contacted" or "Converted" to select that specific radio. 

driver.findElement(By.xpath("//input[@type = 'radio' and (following::button[contains(text(), '" + textToFindRadio + "')])]")).click(); 

Hoffe, es funktioniert ... :)

1

Als Saurabh sagte, es gebe kein Element vorhanden ist Ihre Code mit der ID frm-modulstatuses. Ich habe Ihren Code überprüft und für den Klick auf den Radio-Button können Sie einfach Xpath =. // ul/li [4]/Label/Eingabe, wobei li [4] für die letzte Taste als

1

Ich habe den folgenden Ansatz für Ihre Anfrage: Verwenden xpath://input[@type='radio']

Code:

WebElement ele = driver.fidnElement(By.xpath("//input[@type='radio']")); 
ele.click(); 

den oben beschriebenen Ansatz versuchen.