这是我的代码段。
未从下拉列表中选择元素,因为元素不可见而导致错误,因此网络驱动程序无法进行交互
package pac.PraticeSeleniumProgramsWebDriver;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
public class WorkingWithSelectBoxInWebDriver {
public static void main(String[] args) {
System.setProperty("webdriver.firefox.bin","C:\\Users\\A081368\\AppData\\Local\\Mozilla Firefox\\firefox.exe");
WebDriver Driver = new FirefoxDriver();
Driver.get("https://login.yahoo.com/");
timeout(Driver);
Driver.findElement(By.xpath("//span[contains(text(),'Create Account')]")).click();
timeout(Driver);
Driver.findElement(By.xpath("//input[@id='first-name']")).sendKeys("Satish");
Driver.findElement(By.xpath("//input[@id='last-name']")).sendKeys("Ranjan");
Driver.findElement(By.xpath("//input[@id='user-name']")).sendKeys("satishranjanbit");
Driver.findElement(By.xpath("//input[@id='password']")).sendKeys("shalini1");
WebElement element = Driver.findElement(By.xpath("//select [@id='country-code']"));
System.out.println("pass");
Select Dropdown = new Select(element);
System.out.println("pass1");
Dropdown.selectByIndex(10);
System.out.println("pass2");
Driver.findElement(By.xpath("//input[@id='mobile']")).sendKeys("08105002231");
System.out.println("pass3");
Driver.close();
Driver.quit();
}
public static void timeout(WebDriver Driver) {
Driver.manage().timeouts().implicitlyWait(2, TimeUnit.MINUTES);
}
}
答案 0 :(得分:0)
包含select
的{{1}}元素确实不可见,请参阅id="country-code"
:
display: none;
相反,您需要点击<select aria-invalid="false" id="country-code" name="mobileCountryCode" data="country-code-drop-down" corresponding-field-id="mobile" style="display: none;">...</select>
元素div
:
id="selected-country-code-1"
这会打开下拉列表。然后,选择一个选项:
WebElement dropdown = Driver.findElement(By.id("selected-country-code-1"));
dropdown.click();
这会从下拉列表中选择WebElement options = Driver.findElement(By.id("country-codes-menu-1"));
options.findElement(By.partialLinkText("Antarctica")).click();
国家/地区代码(假设这是您计划从下拉菜单中选择的内容)。
答案 1 :(得分:0)
如果您无法从下拉列表中选择值,则错误为“元素不可见”。 那么你不应该使用select类方法。首先你需要点击下拉div标签,意味着你需要从下拉列表中启用选项来选择值。
WebElement dropdown= Driver.findElement(By.cssSelector("div"));
dropdown.click();
WebElement dropdownValue= Driver.findElement(By.cssSelector("dropdown value"));
dropdownValue.click();