如何 select 并单击带有 java 的 selenium 网络驱动程序中的单选按钮

How to select and click on a radio button in selenium web driver with java

我已经在 java 到 select 中编写了一个简单的 selenium web 驱动程序脚本,然后单击一个单选按钮,但我无法 select 并单击第二个单选按钮网页上的按钮 'ONE WAY FLIGHT':http://www.lot.com/pl/en

这是我的代码:

WebDriver driver = new FirefoxDriver();
String web = "http://www.lot.com/pl/en";
driver.get(web);
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
WebElement element;

element = driver.findElement(By.id("select2-departureAirport-container"));
element.click();
element.sendKeys("WAW");
element.sendKeys(Keys.ENTER);

/* RADIO BUTTON ERROR */
element = driver.findElement(By.cssSelector("input[value='SINGLE']"));
elementRadio.click();

这是错误:

Exception in thread "main" org.openqa.selenium.ElementNotInteractableException:

这是网页HTML的片段http://www.lot.com/pl/en:

<div class="b-row">
                <div class="b-column twelve">
                    <fieldset class="flight-type" role="radiogroup" aria-required="true">
                        <legend class="acc-hide">Choose flight type</legend>
                        <label class="booker-label radio-label">
                            <input data-f-focus="radio" id="ticketTypeReturn" type="radio" name="ticketType" class="required" value="RETURN" checked="checked" />

                            <span class="ci" aria-hidden="true"></span>
                            <span class="ci-label">Round-trip flight</span>
                        </label>
                        <label class="booker-label radio-label g-no-margin">

                            <input data-f-focus="radio" type="radio" name="ticketType" class="required" value="SINGLE" />
                            <span class="ci cis" aria-hidden="true"></span>
                            <span class="ci-label">One-way flight</span>
                        </label>
                        <p id="ticketTypeReturn--required" class="b-v-error" role="alert">Choose flight type</p>
                    </fieldset>

                </div>
            </div>

我无法理解为什么会抛出异常。

使用下面的代码:-

WebDriver driver = new FirefoxDriver();
String web = "http://www.lot.com/pl/en";
driver.get(web);
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
WebElement element;

element = driver.findElement(By.id("select2-departureAirport-container"));
element.click();
element.sendKeys("WAW");
element.sendKeys(Keys.ENTER);

/* RADIO BUTTON ERROR */
element = driver.findElement(By.cssSelector("input[value='SINGLE']"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);

你试过 xpath 了吗?

elementRadio = driver.findElement(By.xpath("//*[@id="flightBookingForm"]/div[2]/div[1]/div/fieldset/label[2]/span[2]"));
elementRadio.click();