Een dropdown-waarde selecteren in Selenium WebDriver met Java

Ik ben nieuw bij selenium, werk momenteel aan selenium webdriver. Ik wil een waarde selecteren in de vervolgkeuzelijst.
De id=periodId en de optie zijn veel die ik probeer te selecteren Laatste 52 weken.

Hier is de HTML-code:

<select id="periodId" name="period" style="display: none;">
    <option value="l4w">Last 4 Weeks</option>
    <option value="l52w">Last 52 Weeks</option>
    <option value="daterange">Date Range</option>
    <option value="weekrange">Week Range</option>
    <option selected="" value="monthrange">Month Range</option>
    <option value="yeartodate">Year To Date</option>
</select>

Stel me enkele manieren voor om op de vervolgkeuzelijst te klikken.

Ik heb geprobeerd met de bovenstaande voorbeeldregels, maar ik krijg een foutmelding, zoals Element is momenteel niet zichtbaar en er kan dus geen interactie mee zijn
Opdrachtduur of time-out: 32 milliseconden
de drop-down waarden zijn de jQuery multiselect widget formaat.


Antwoord 1, autoriteit 100%

Wikkel uw WebElement gewoon in Select Object zoals hieronder weergegeven

Select dropdown = new Select(driver.findElement(By.id("identifier")));

Zodra dit is gebeurd, kunt u op 3 manieren de gewenste waarde selecteren. Overweeg een HTML-bestand als dit

<html>
<body>
<select id = "designation">
<option value = "MD">MD</option>
<option value = "prog"> Programmer </option>
<option value = "CEO"> CEO </option>
</option>
</select>
<body>
</html>

Nu vervolgkeuzemenu identificeren

Select dropdown = new Select(driver.findElement(By.id("designation")));

Als u de optie wilt selecteren, zegt u ‘Programmer’ die u kunt doen

dropdown.selectByVisibleText("Programmer ");

of

dropdown.selectByIndex(1);

of

dropdown.selectByValue("prog");

Antwoord 2, autoriteit 4%

Als je alles in één regel wilt schrijven, probeer dan

new Select (driver.findElement(By.id("designation"))).selectByVisibleText("Programmer ");

Antwoord 3, autoriteit 4%

Zoals hierboven besproken, moeten we Select Class in Selenium implementeren en verder kunnen we verschillende beschikbare methoden gebruiken, zoals: –
voer hier de afbeeldingsbeschrijving in


Antwoord 4, autoriteit 2%

Eigenlijk selectselecteert wel, maar plaatst de geselecteerde waarden niet in het respectievelijke veld . Waar vroeg ik me af, het onderstaande fragment werkt perfect

driver.findElement(By.name("period")).sendKeys("Last 52 Weeks");

Antwoord 5

code om vervolgkeuzelijst te selecterenmet xpath

Select select = new 
Select(driver.findElement(By.xpath("//select[@id='periodId']));

code om een ​​bepaalde optie te selecterenmet selectByVisibleText

select.selectByVisibleText(Last 52 Weeks);

Antwoord 6

Je kunt de volgende methoden gebruiken om drop-down in selenium te verwerken.

1. driver.selectByVisibleText("Text");
 2. driver.selectByIndex(1);
 3. driver.selectByValue("prog");

Voor meer details kun je http://www.codealumni.com/ raadplegen handle-drop-selenium-webdriver/dit bericht.

Het zal je zeker veel helpen bij het oplossen van je vragen.


Antwoord 7

Ik heb Selenium niet geprobeerd, maar voor de Galen-test werkt dit,

var lijst = driver.findElementByID(“periodID”); // dit komt terug
webelement

lijst.klik(); // dit opent de vervolgkeuzelijst.

lijst.typeText(“14w”); // dit zal optie “14w” selecteren.

Je kunt dit proberen in selenium, de werking van galen en selenium is vergelijkbaar.


Antwoord 8

Importeer eerst het pakket als:

org.openqa.selenium.support.ui.Select importeren;

schrijf dan in één regel als:

new Select (driver.findElement(By.id(“sampleid”))).selectByValue(“SampleValue”);


Antwoord 9

WebDriver driver = new FirefoxDriver();
WebElement identifier = driver.findElement(By.id("periodId"));
Select select = new Select(identifier);
select.selectByVisibleText("Last 52 Weeks"); 

Antwoord 10

Probeer dit-

driver.findElement(By.name("period")).sendKeys("Last 52 Weeks");

Other episodes