使用selenium webdriver cod的ie浏览器中的焦点问题

2024-10-03 00:31:59 发布

您现在位置:Python中文网/ 问答频道 /正文

首先我需要鼠标悬停,然后它会打开一个下拉列表,然后我会点击它链接。它在firefox、chrome和ie中都能正常工作

这是密码

WebElement element=driver.findElement(By.xpath("/html/body/div/span/form[2]/div[1]/div[1]/div[3]/div[2]/ul/span[3]/li/a"));

Actions act=new Actions(driver);
act.moveToElement(element).build().perform();


WebElement element2=driver.findElement(By.xpath("/html/body/div/span/form[2]/div[1]/div[1]/div[3]/div[2]/ul/span[3]/li/ul/span[1]/li/a"));
Actions act1=new Actions(driver);
    //act1.click(element2);
act1.moveToElement(element2).click(element2).build().perform();

当我们使用这段代码时,它甚至可以在IE浏览器中工作

^{pr2}$

如果我们使用requiredwindow,那么即使在IE浏览器中也能很好地工作,这样就不会出现定位器问题

但我不鼓励在我的项目中使用上述requiredwindowfoucs代码。 有别的办法吗。在

Ie浏览器中的问题当我们不使用requiredwindowfocus时,它是在点击其他链接,所以我假设问题出在焦点上。在

所以请不要使用requiredfoucswindow来帮助我解决这个问题


Tags: divactionsby链接driver浏览器lielement
1条回答
网友
1楼 · 发布于 2024-10-03 00:31:59

我在我的项目中也有类似的问题。在IE中,单击下拉值不起作用。我有一个非常奇怪和意想不到的解决办法。在执行操作之前找到元素。我假设这是必需的,因为当您移动到element1并尝试查找元素时,IE Xpath处理器会扰乱焦点。在

WebElement element=driver.findElement(By.xpath("/html/body/div/span/form[2]/div[1]/div[1]/div[3]/div[2]/ul/span[3]/li/a"));

WebElement element2=driver.findElement(By.xpath("/html/body/div/span/form[2]/div[1]/div[1]/div[3]/div[2]/ul/span[3]/li/ul/span[1]/li/a"));

Actions act=new Actions(driver);
act.moveToElement(element).build().perform();
act.moveToElement(element2).click(element2).build().perform();

请试试这个,让我知道这是否对你也有用!!在

另外,考虑使用相对XPath,而不是使用的绝对XPath。不需要第二个操作。一个动作就可以了。在

根据用户评论进行编辑

“移动到元素1”正在工作,列表正在显示。所以我假设element2是可见的,因此我们可以直接单击它而不使用Actions

^{pr2}$

相关问题 更多 >