gpt4 book ai didi

java - Selenium 找到元素但随机不单击某个元素,尽管在 Firefox 上是这样说的

转载 作者:太空宇宙 更新时间:2023-11-04 11:58:04 24 4
gpt4 key购买 nike

我正在开发一个程序来自动填写一些表格,并且我正在使用 Selenium。从一开始就困扰我的一个问题是,如果这项工作有效,本应单击按钮的指令不起作用并且不返回任何错误。这种情况是随机发生的,但在我第一次运行程序时,这种情况发生得更频繁。

基本上,驾驶员必须进入一个站点,在弹出窗口中填写登录信息,然后在加载第一页时,必须单击一个按钮,这将打开第二页。所发生的情况是,在不打开第二页的情况下,驱动程序已经在寻找属于它的元素。

起初我认为浏览器和驱动程序可能不同步,因为驱动程序比浏览器更快,并且以某种方式搞乱了整个过程。我试图用半秒钟的 sleep 来纠正这个问题。还实现了 15 秒的隐式等待。

没有任何改进,我决定检查是否找到第一个元素。我已插入一行以将按钮上的文本打印到控制台,并且打印正确。下一行是单击该按钮,尽管驱动程序没有检索到任何错误,但在浏览器上,仅加载第一页。

最后但并非最不重要的一点是尝试使用该 xpath 查找所有元素,但列表只有一个元素。

所以,综上所述,找到了第一个元素,点击指令没有检索到错误,但按钮仍然没有被点击。这是随机发生的。

这是我正在使用的代码的相关部分:

tester.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
tester.get(website);
Thread.sleep(1000);

//Bypasses login pop-up window
try
{
bypassLogin(username, password);
}
catch(Exception e)
{
handler(e.getMessage(), null);
finisher(tester, br, br2, pathGecko, pathTemplate);
}

//Sleep in order to synchronize driver and browser
Thread.sleep(1000);

while((reader = br2.readLine()) != null)
{
tempOrig = new StringBuilder()
.append(tempOrig)
.append(reader)
.toString();
}

//Enters the body frame, with the elements to work with
try
{
tester.switchTo().frame("portal_header");
List <WebElement> LClick = tester.findElements(By.xpath(".//*[@id='2']/a"));
System.out.println(LClick.size()); //Returns 1
tester.findElement(By.xpath(".//*[@id='2']/a")).getText(); //Returns the correct value
tester.findElement(By.xpath(".//*[@id='2']/a")).click();
tester.switchTo().defaultContent();
tester.switchTo().frame("portal_body");
}
catch(Exception e)
{
handler(e.getMessage(), null);
finisher(tester, br, br2, pathGecko, pathTemplate);
}

最佳答案

尝试一下并检查

WebDriverWait wait = new WebDriverWait(tester, 15);
boolean bool = tester.findElement(By.xpath(".//*[@id='2']/a")).isDisplayed();
System.out.print(bool);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath(".//*[@id='2']/a")));
tester.findElement(By.xpath(".//*[@id='2']/a")).click();

还要检查浏览器版本和 selenium 版本

关于java - Selenium 找到元素但随机不单击某个元素,尽管在 Firefox 上是这样说的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41183424/

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