gpt4 book ai didi

java - Selenium:actions.moveToElement.click 不起作用

转载 作者:搜寻专家 更新时间:2023-10-31 20:11:10 26 4
gpt4 key购买 nike

我不明白为什么这不起作用。我正在测试的 Web 应用程序有一个在单击按钮时生成的弹出框。这个弹出框包含一个表格,表格的每一行都是可点击的。我已经尝试了多种操作、表格行选择等的实现,但没有任何效果。该元素对 Selenium 可见,只是不会单击它。也没有错误被抛出。

附加说明:我已经用其他元素检查了 Action 方法并且它有效,所以它必须是正在使用的选择器或它是如何看到它的。非常奇怪的行为。我还使用 Selenium IDE 在 Firefox 中对其进行了检查,并且 weblement.click() 将在 CSS 选择器上运行。

public class ContactDetails {
WebDriver driverInstance;

public ContactDetails(WebDriver driver){
this.driverInstance = driver;
}

public void enterContactDetails(){

//Other code here...

By validAddress = By.cssSelector("#customerAddress > tbody > tr:nth-child(1) > td");
//Validate that the element is visible. Definitely working as intended because I use it elsewhere in the code successfully.
if (Helper.checkElementVisible(driverInstance, validAddress)){
//if visible:
WebElement selectAddress = driverInstance.findElement(validAddress);
//Helper.scrollToElementAndClick(driverInstance, selectAddress);
Actions actions = new Actions(driverInstance);
actions.moveToElement(selectAddress).click().perform();
}
}
}

辅助类:

public class Helper {

public static void scrollToElementAndClick(WebDriver driver, WebElement webelement){
Actions actions = new Actions(driver);
actions.moveToElement(webelement).click().perform();
}

最奇怪的是,当我执行此实现时,它有几次工作正常。然后我将 Actions 代码放入现在已注释掉的 Helper.scrollToElementAndClick() 方法中,它停止工作。然后,当我回到这个实现时,它也不起作用!

我不能发布弹出窗口的图像,因为它会泄露敏感信息,但这里有一些带有虚拟数据的弹出窗口示例 HTML:

<div class="someDiv" tabindex="-1" role="dialog" aria-labelledby="ui-1"
style="height: auto; width: 600px; top: 175px; left: 364px; display: block;">
<div class="anotherDiv">
<span id="ui-1" class="ui-title"></span>
<button class="ui-title-close" role="button" aria-disabled="false" title="close">
<span>close</span>
</button>
</div>
<div id="validateCustomerAddress" class="ui-content" style="width: auto; min-height: 0px; max height: none; height: 230px;">
<h2 class="aSection" style="color:#666666">Valid Addresses:</h2>
<table id="customerAddress">
<tbody>
<tr>
<td>ZIP CODE: N/A</td>
</tr>
<tr>
<td>2 POPLAR WAY</td>
</tr>
<tr>
<td>KINSEY DRIVE</td>
</tr>
</tbody>
</table>
</div>
</div>

最佳答案

尝试将所有操作合并为一个操作,如下所示,然后重试。

公共(public)类助手{

public static void scrollToElementAndClick(WebDriver driver, WebElement webelement){
Actions actions = new Actions(driver);
actions.moveToElement(webelement).click();

action = action.build;
action.perform();

您也可以尝试 JavascriptExecuter,如下所示:

((JavascriptExecutor)driver).executeScript("arguments[0].click();", selectAddress); 

还要考虑 td 包含一些可以点击的其他元素(输入、链接)的可能性(我不知道你的 html 代码)。

希望对你有帮助。

关于java - Selenium:actions.moveToElement.click 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27385780/

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