相关疑难解决方法(0)

Selenium WebDriver在IE浏览器的文本字段中键入非常慢

我正在IE 11浏览器上运行我的一个脚本,Selenium 2.43.1 当脚本在文本字段中键入时使用以下内容:

element.sendKeys("string");
Run Code Online (Sandbox Code Playgroud)

在IE浏览器中,我可以看到字符串中的一个字符在文本字段中键入,并且在键入下一个字符之前等待1-2秒.键入一个字符的方法需要1-2秒.

  1. 为什么用IE输入这么慢?
  2. 有没有其他方法可以加快打字速度?

selenium internet-explorer selenium-webdriver

54
推荐指数
5
解决办法
7万
查看次数

Selenium 3.0.1与IE11在Windows 10上找不到元素(在Windows 7上使用IE11正常工作)

  • 操作系统:Windows 10
  • 浏览器:IE11
  • Selenium(Python)包:3.0.1
  • IEWebDriverServer.exe:3.1.0

我们正准备将我们的自动化节点迁移到Windows 10,在我们的测试中,我们发现尽管我们的脚本在FF,IE和Chrome上的Win7上运行良好,但它们在Windows 10上仅在IE上失败(适用于FF和Chrome) ).

当运行agianst IE时,浏览器实例化并且webdriver能够看到浏览器(我尝试了一个简单的命令,如driver.back(),返回上一页).但是,我们无法获得任何find_element ...调用工作.无论是id,name,css,xpath等,脚本都会失败,说明找不到给定id/name/css/xpath的元素(无论我试图用什么方法来查找webelement).

我已经看到有关安全更新的帖子打破了这一点,并建议还原更新.这是一年前的事情,似乎随后的更新已经解决了这个问题.

我还阅读了有关确保所有区域的保护模式相同,注册表值等的帖子.这些建议都没有奏效.

以下是我正在使用的示例脚本(当修改为在Chrome或Firefox中运行时)仅在IE11中不起作用:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Ie()
driver.implicitly_wait(30)
driver.maximize_window()

# navigate to the application home page
driver.get("http://www.google.com")

# get the search textbox
search_field = driver.find_element_by_id("lst-ib")
Run Code Online (Sandbox Code Playgroud)

运行此脚本的错误是:

selenium.common.exceptions.NoSuchElementException: Message: Unable to find element with id == lst-ib
Run Code Online (Sandbox Code Playgroud)

python selenium selenium-webdriver internet-explorer-11 selenium-iedriver

7
推荐指数
1
解决办法
1188
查看次数

NoSuchWindowException-尽管遵循其他答案中的配置建议,但无法在IE的Selenium中的关闭窗口中找到元素

这与我最近在Selenium上提出的其他问题有关(该问题与Firefox相关的问题有关,此问题与IE相关的问题有关)。

基本上,当我运行以下代码时

ieDriver.Navigate().GoToUrl("http://localhost:51282");
IWebElement linkToAboutPage = ieDriver.FindElement(By.Id("test"));
linkToAboutPage.Click();
Run Code Online (Sandbox Code Playgroud)

模拟点击链接,它成功导航到页面,但是当尝试检索实际元素时,出现以下异常:

An exception of type 'OpenQA.Selenium.NoSuchWindowException' occurred in WebDriver.dll but was not handled in user code

Additional information: Unable to find element on closed window

对此问题的可接受答案表明,应在“ IE安全设置”中将“启用保护模式”全部选中或全部取消选中。确实,当我查看这些设置时,未为Intranet选择“启用保护模式”,而为其他选择未选中: 在此处输入图片说明

不幸的是,如屏幕截图所示,这是由我的公司IT部门管理的,我不确定能否说服他们让我更改设置是否会很幸运。我也无法按照其他一些答案所建议的方式来编辑注册表(可能是由于缺乏管理权限)。

我见过的其他一些解决方案包括设置IntroduceInstabilityByIgnoringProtectedModeSettingstrue,提供InitialBrowserUrl或设置EnsureCleanSessiontrue。如下所示,我目前正在做所有这些事情:

var ieOptions = new InternetExplorerOptions()
{
    InitialBrowserUrl = "http://www.google.com",
    IntroduceInstabilityByIgnoringProtectedModeSettings = true,
    IgnoreZoomLevel = true,
    EnableNativeEvents = true,
    EnsureCleanSession = true
};

ieDriver = new InternetExplorerDriver(ieOptions);
ieDriver.Manage().Timeouts().ImplicitWait = …
Run Code Online (Sandbox Code Playgroud)

c# selenium internet-explorer selenium-webdriver selenium-iedriver

6
推荐指数
1
解决办法
3667
查看次数