当前位置: 首页 > 知识库问答 >
问题:

在Internet Explorer中运行selenium的问题

姬朗
2023-03-14

嗨,我正在IE9上运行selenium webdriver。

  • WebDriver版本:2.32.0
  • IE:9
  • IEDriverServer_win32:2.32.3
  • windows7

下面是我的代码:

File IEDriver=new File(System.getProperty("user.dir")+File.separator+"BrowserDrivers"+File.separator+"IEDriverServer.exe");
System.setProperty("webdriver.ie.driver", IEDriver.getAbsolutePath());
DesiredCapabilities cap=DesiredCapabilities.internetExplorer();
cap.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
WebDriver driver=new InternetExplorerDriver(cap);
driver.get("http://in00616:8421/GS");
Thread.sleep(3000);
//driver.findElement(By.id("j_username")).sendKeys("admin");
//driver.findElement(By.id("j_password")).sendKeys("admin");
driver.findElement(By.xpath(".//input[@id='j_username']")).sendKeys("admin");
driver.findElement(By.xpath(".//input[@id='j_password']")).sendKeys("admin");
driver.findElement(By.id("login")).submit();
Thread.sleep(2000);
driver.findElement(By.xpath(".//button[text()='Securities']")).click();
Thread.sleep(2000);
driver.findElement(By.xpath(".//span[text()='Issue']")).click();
Thread.sleep(2000);
driver.findElement(By.id("tabSecurities_Issue_Request_for_Issues")).click();

上面的代码登录到我的网站,但当我试图点击证券按钮,我无法做到这一点。“证券”按钮开始闪烁,然后通知我无法找到元素。

线程“main”组织中出现异常。openqa。硒。NoTouchElementException:找不到xpath==的元素//span[text()='Issue Type'](警告:服务器未提供任何stacktrace信息)–

同样的代码在FireFox中也可以正常工作。

请帮忙,因为我打算在InternetExplorer上测试我的UI。我认为这是版本兼容性问题。有人能推荐IEDriverServer、Selenium WebDriver和IE的兼容版本集吗?它们都处于工作状态。

共有3个答案

龚星洲
2023-03-14

嗨,所有我已经发现,这是Selenium WebDrive 2.32与IEDriver_Server2_32的问题。尝试排列后

潘楚
2023-03-14

Webdriver难以使用IE定位器。Murnal似乎很难使用CSS定位器。我的建议是,如果一个定位器不起作用,你必须使用其他定位器。这个问题在使用非firefox浏览器时反复出现。同时,使用Firefox selenium IDE是一种更容易找到替代定位器的方法,在您键入命令的框中,您会看到它也提供了替代定位器。复制并尝试将其插入webdriver的findelement脚本。

漆雕正奇
2023-03-14

正如这个答案所指出的,IE没有原生XPath支持。相反,Selenium WebDriver在使用IE时使用旧的第三方xpath库。Firefox集成了对XPath的支持,这就是为什么您的选择器在该浏览器中工作良好。

我强烈建议您更新选择器以改用CSS选择器。它们在所有浏览器中都受支持,更易于阅读、理解和拾取,而且速度非常快。

你可以从这里、这里、这里的一些不同的教程以及CSS选择器备忘表中了解更多关于如何使用CSS选择器的信息。

此外,如果可能,请尽量不要根据元素包含的文本选择元素。如果可以通过元素的ID、类、其他属性,甚至通过DOM链(即“div.1”)来选择元素

 类似资料:
  • 我被以下错误困住了。我不知道这是什么类型的错误。我该怎么办?

  • 问题内容: 我在EC2实例上。因此没有GUI。 然后我这样做: 太好了,现在一切正常,对吗? 当我运行代码时: 我得到这个: 问题答案: 打开终端并运行此命令 。每次重新启动计算机时都需要运行此命令。如果一切正常,可以将其添加到启动命令中 还要确保在/ etc / environment文件中有一行 然后,运行测试以查看问题是否得到解决。 所有在使用此功能之前,请注意下面来自sardathrion

  • 我正在尝试运行一个针对Internet Explorer的TestNG套件。然而,它似乎无法使用CSS定位器在网页上查找元素。我使用@FindAll注释来指定多个定位策略,这些策略对Chrome和Firefox都很有效。以下是我在TestNG失败摘要中看到的错误: org.openqa.selenium.WebDriverExc0019:(警告:服务器没有提供任何堆栈跟踪信息)命令持续时间或超时:

  • 问题内容: 在运行Selenium 2时,在Firefox中激活Firebug的最佳方法是什么? 编辑:好的,我意识到“最佳”是可以解释的,但是基于概要的解决方案确实曾经是硒1.0的痛苦。因此,任何替代方案都被认为是更好的方法,直到证明更糟;) 问题答案: 您可以用代码创建个人资料,并动态添加所需的加载项。假设您将Firebug XPI作为firebug.xpi保存到C:\ FF_Profile文

  • 问题内容: 我在EC2实例上。因此没有GUI。 然后我这样做: 太好了,现在一切正常,对吗? 当我运行代码时: 我得到这个: 问题答案: 打开终端并运行此命令 。每次重新启动计算机时都需要运行此命令。如果一切正常,可以将其添加到启动命令中 还要确保在文件中有一行 然后,运行测试以查看问题是否得到解决。 在使用此功能之前,请所有人注意以下来自sardathrion的评论。

  • 问题内容: 我想在Amazon Lambda中运行BeautifulSoup和Selenium Webdriver,我的运行环境是python 3.6。可以跑步吗?如果是这样,如何。我的意图是使用漂亮的汤4和selenium从网页中删除数据(因为它必须删除由javascript动态生成的数据)。 问题答案: 是的,有可能。您需要将无头的Chrome二进制文件和chromedriver以及所有需要的