Настройка защитного режима Internet Explorer и уровни масштабирования
using System;
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium;
namespace CSharpAutomationFramework.Tests
{
public class BrowserSource
{
var options = new InternetExplorerOptions();
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
public bool IgnoreZoomLevel { get; set; }
public bool IntroduceInstabilityByIgnoringProtectedModeSettings { get; set; }
InternetExplorerDriver protectivemode = new InternetExplorerDriver(options);
InternetExplorerOptions options = new InternetExplorerOptions();
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
InternetExplorerDriver zoom = new InternetExplorerDriver(zoomoptions);
InternetExplorerOptions zoomoptions = new InternetExplorerOptions();
options.IgnoreZoomLevel = true;
static string[] Browsers = {
"ie"
};
}
}
Я пытаюсь использовать приведенный выше код, чтобы игнорировать уровни масштабирования и настройки защитного режима во время выполнения сценария selenium, но сценарий отображает ошибки при построении решения. Не уверен, где я иду не так.
1 ответ
При работе с Selenium 3.x, IEDriverServer 3.x и Internet Explorer нельзя игнорировать настройки уровней масштабирования и защитного режима.
Если вы заглянете в " Необходимую конфигурацию драйвера Internet Explorer", следующие пункты четко указаны:
Защищенный режим
В Internet Explorer 7 или более поздней версии в Windows Vista или Windows 7 необходимо установить одинаковые значения параметров защищенного режима для каждой зоны. Значение может быть включено или выключено, если оно одинаково для каждой зоны. Чтобы установить параметры защищенного режима, вы должны выбрать "Свойства обозревателя" в меню "Сервис" и затем нажать на вкладку "Безопасность". Для каждой зоны в нижней части вкладки будет установлен флажок "Включить защищенный режим".
@JimEvans в своей статье " Ты делаешь это неправильно": IE Protected Mode и WebDriver четко упоминают:
Использование возможности не решает основную проблему, хотя. Если граница защищенного режима пересекается, это может привести к очень неожиданному поведению, включая зависания, расположение элемента не работает и щелчки не распространяются. Чтобы предупредить людей об этой потенциальной проблеме, этой способности дали большие страшные имена, такие как
INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS
на Яве иIntroduceInstabilityByIgnoringProtectedModeSettings
в .NET. Мы действительно думали, что если вы скажете пользователю, что использование этого параметра может привести к появлению потенциальной ошибки в его коде, это будет препятствовать его использованию, но оказалось, что это не так.
Уровень масштабирования браузера
Уровень масштабирования браузера должен быть установлен на 100%, чтобы события собственной мыши могли быть установлены в правильные координаты.
Решение
Согласно требуемой конфигурации драйвера Internet Explorer:
- Установите / отмените настройки защищенного режима на один и тот же уровень для всех зон.
- Установите уровень масштабирования браузера на 100%