gpt4 book ai didi

java - 如何使用 Selenium 在 Java 方法中初始化另一个 WebElement

转载 作者:行者123 更新时间:2023-12-01 09:41:59 24 4
gpt4 key购买 nike

我有点担心我面临的小问题。我有一个测试用例,我需要从下拉列表中获取任何值。选择后整个网页会重新加载,我有两个选择。如果出现警告消息,我需要再次单击下拉菜单并选择另一个值。如果没有出现警告消息,只需单击“继续”按钮。下拉列表中的所有值都具有相同的 id,仅结尾不同:

uxMiniFinderVoyageSelect_chzn_o_1
uxMiniFinderVoyageSelect_chzn_o_2
uxMiniFinderVoyageSelect_chzn_o_3
uxMiniFinderVoyageSelect_chzn_o_4

直到 30。我所做的就是所谓的 Random 类,我在其中设置了 1 - 30 的变量

Random random = new Random();
int x = random.nextInt(30) + 1;

现在我用这种方式寻找我的元素

WebElement valueFromDropDown = driver.findElement(By.id("uxMiniFinderVoyageSelect_chzn_o_" + x));

但是,如果出现警告消息并且我需要单击另一个值,我的代码会一遍又一遍地选择相同的值。问题是如何正确且用更少的代码编写单击下拉列表中的另一个元素?完整的类看起来像这样

    public class SomeClassName{

Random random = new Random();
int x = random.nextInt(30) + 1;
@FindBy(xpath = "someXpathExpression") private WebElement dropDown;
@FindBy(xpath = "someXpathExpression") private WebElement warningMessage;
@FindBy(xpath = "someXpathExpression") private WebElement continueButton;

public void fillForm() throws Exception{
WebElement valueFromDropDown = driver.findElement(By.id("uxMiniFinderVoyageSelect_chzn_o_" + x));
dropDown.click();
valueFromDropDown.click();
if(user will see that warningMessage suddenly apppears){
dropDown.click();
valueFromDropDown.click(); -> this is where I want to click on another value
}else{
contunieButton.click();

最佳答案

引入一个随机返回下拉网页元素的方法,如下所示

public WebElement getDropDownValueRandomly() {
Random random = new Random();
int x = random.nextInt(30) + 1;
WebElement valueFromDropDown = driver.findElement(By.id("uxMiniFinderVoyageSelect_chzn_o_" + x));

return valueFromDropDown;

}

你的类(class)将是这样的:

public class SomeClassName{

@FindBy(xpath = "someXpathExpression") private WebElement dropDown;
@FindBy(xpath = "someXpathExpression") private WebElement warningMessage;
@FindBy(xpath = "someXpathExpression") private WebElement continueButton;

public void fillForm() throws Exception{
WebElement valueFromDropDown = getDropDownValueRandomly();
dropDown.click();
valueFromDropDown.click();
if(user will see that warningMessage suddenly apppears){
dropDown.click();
getDropDownValueRandomly().click(); -> this is where I want to click on another value
}else{
contunieButton.click();
}
}

public WebElement getDropDownValueRandomly() {
Random random = new Random();
int x = random.nextInt(30) + 1;
WebElement valueFromDropDown = driver.findElement(By.id("uxMiniFinderVoyageSelect_chzn_o_" + x));

return valueFromDropDown;

}

}

希望这有帮助

关于java - 如何使用 Selenium 在 Java 方法中初始化另一个 WebElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38382535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com