【发布时间】:2021-05-03 13:42:00
【问题描述】:
我无法访问跨度内的下拉菜单,甚至无法打开它(只能通过意外发生的功能。
我正在尝试点击该站点的下拉菜单:https://globaldata.pt/cart(您需要在购物车中放入一些东西才能显示,它是改变数量的那个)。
我已经尝试了很多不同的选择器,目前不确定这是否是选择器相关的问题。我也已经尝试过选择,但不起作用,因为它告诉我这是一个跨度。
这是我的代码的相关部分:
@FindBy(id = "quantity-selector")
private WebElement quantity_selector_cart;
public void setQuantity() {
String initial_count = this.quantity_counter.getText();
this.quantity_counter.click();
//this.quantity_counter.isSelected();
//driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
/* List<WebElement> quantity_values = driver.findElements(By.xpath("/html//select[@id='quantity-selector']"));
for (WebElement qv : quantity_values) {
if (qv.getText().equalsIgnoreCase("3"));
{
qv.click();
}
}*/
}
TestNG 告诉我测试通过了,所以我认为点击会以某种方式起作用?预期的行为是它应该保持打开状态,所以我可以从下拉菜单中选择一些东西,这不会发生。奇怪的是,当我添加当前注释掉的代码(应该单击下拉菜单中值为 3 的元素的代码)时,确实会发生这种情况。我真的不明白,希望你能帮助我理解我做错了什么。
编辑:这是我认为的 html 代码的相关部分,我知道它在相关部分说“选择类”,但它确实被 selenium 识别为跨度并引发错误
<div class="d-flex flex-lg-column align-items-end justify-content-between content-right" data-qa="quantity-selector-T8BLACK">
<div class="cart-quantity-selector" data-qa="component cart-quantity-selector">
<form name="cartChangeQuantityForm_T8BLACK" method="post" action="/cart/change/T8BLACK">
<div class="quantity-selector" data-qa="component quantity-selector">
<label class="d-none" for="quantity-selector">Cantidad</label>
<select class=" select form-control custom-select js-select-quantity
" data-qa="component select quantity quantity-selector" name='quantity' id='quantity-selector' onchange='this.form.submit();'>
<option value="1">
1
</option>
<option value="2">
2
</option>
<option value="3">
3
</option>
<option value="4">
4
</option>
<option value="5">
5
</option>
<option value="6" selected>
6
</option>
<option value="7">
7
</option>
<option value="8">
8
</option>
<option value="9">
9
</option>
<option value="10">
10
</option>
<option value="11">
11
</option>
<option value="12">
12
</option>
<option value="13">
13
</option>
<option value="14">
14
</option>
<option value="15">
15
</option>
<option value="16">
16
</option>
</select>
</div>
<input type="hidden" value="T8BLACK" name="groupKey">
<input id="" name="cart_change_quantity_form[_token]" class="form-control" type="hidden" placeholder="" value="E16srgpDolEhlaJOhbkLypJxdbUObW4C7yjnZznQZbQ" />
</form>
</div>
【问题讨论】:
标签: java selenium automation testng