我是硒自动化测试的新手。试图在我们的web应用程序中找到两个下拉框的Xpath,但还没有成功;以下是两者的HTML代码;在下面的HTML中,我尝试使用属性@占位符创建Xpath,这是唯一的;rest在这两种情况下都很常见,但都无法正确获得;每个下拉列表都有一组值,我也尝试使用"Select“”试验性“包含、”以“方法开始获得这些值。
请您提供您的善意的建议和建议。
<input class="form-control bootstrap-typeahead-input-main" type="text" placeholder="Alpha Type" autocomplete="off" value="" style="background-color: transparent; display: block; position: relative; z-index: 1;">
<input class="form-control bootstrap-typeahead-input-main" type="text" placeholder="Beta Type" autocomplete="off" value="" style="background-color: transparent; display: block; position: relative; z-index: 1;">
这里是我正在做的最新组合;
@FindBy(how= How.XPATH, using="//input[contains(@placeholder='Alpha Type')]")
@FindBy(how= How.XPATH, using="//input[contains(@placeholder='Beta Type')]")
在找到Xpath后使用Select获取下拉的值;
Select drpAlphaType = new Select(AlphaType);
drpEnqType.selectByValue("XYZ");
发布于 2018-06-11 21:33:53
XPath的contains()函数是一个子字符串测试--这不是您想要的。
变化
//input[contains(@placeholder='Alpha Type')]至
//input[@placeholder='Alpha Type']若要选择具有input属性值为"Alpha Type"的所有@placeholder元素,请执行以下操作。
发布于 2018-06-12 12:28:55
您正在使用select,但它是错误的,因为根据您的错误:
org.openqa.selenium.support.ui.UnexpectedTagNameException: Element should have been "select" but was "input"这个元素是一个输入。所以,试着像这样处理它:
@FindBy(how= How.XPATH, using="//input[@placeholder='Alpha Type']") private WebElement alphaType;
@FindBy(how= How.XPATH, using="//input[@placeholder='Beta Type']") private WebElement betaType;
WebDriverWait waitAlpha = new WebDriverWait(webDriver, 5); // 5 seconds
waitAlpha.until(ExpectedConditions.elementToBeClickable(alphaType)); //wait until element clickable
alphaType.click();
alphaType.sendKeys("your string"); //write 'your string' in input field
WebDriverWait waitBeta = new WebDriverWait(webDriver, 5);
waitBeta.until(ExpectedConditions.elementToBeClickable(betaType));
betaType.click();
betaType.sendKeys("your string");在此之后,应该下拉列表的值,这应该是分开的。
发布于 2018-06-13 22:11:23
谢谢你的支持和建议。这个问题是通过我补充的一个步骤来解决的。前面正确地指出,Xpath指向一个输入元素,但"Select“是预期的
也就是说,org.openqa.selenium.support.ui.UnexpectedTagNameException:元素应该是"select“,但应该是”输入“
为了尝试替代方法,我放弃了使用"Select“类的想法,而只是简单地输入值。在添加两个XPATH时(一个用于输入/下拉字段,另一个用于该下拉字段中的值)并按顺序单击。现在,我的代码是这样的;
AlphaType.click(); AlphaType.findElement(By.xpath("//div[@id='home-tabs-pane-0']/div/div[4]/div[3]/div[2]/div/div/div/form/div[3]/div[2]/ul/li[3]/a/span")).click(); Thread.sleep(2000);
另一种,即Beta型,也是如此。如果有进一步改进的方法,请分享自己的想法。
https://stackoverflow.com/questions/50806266
复制相似问题