如何 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();
我已经在 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();