Требуемый элемент выглядит как динамический элемент, поэтому вам нужно вызвать WebDriverWait для требуемого ElementToBeClickable , и вы можете использовать любую из следующих стратегий локатора . в качестве решений:
CssSelector
:
new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("button.o365button[aria-label='Activate Search Textbox'] span:nth-child(2)"))).Click();
XPath
:
new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//button[contains(@class, 'o365button') and @aria-label='Activate Search Textbox']//span[text()='Search Mail and People']"))).Click();
Вы обращаетесь к значку приложения? Можно отредактировать файл проекта вручную и вставить код, подобный следующему:
<PropertyGroup>
<ApplicationIcon Condition=" '$(Configuration)' == 'Version1' ">Icon1.ico</ApplicationIcon>
<ApplicationIcon Condition=" '$(Configuration)' == 'Version2' ">Icon2.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup Condition=" '$(Configuration)' == 'Version1' ">
<Content Include="Icon1.ico" />
</ItemGroup>
<ItemGroup Condition=" '$(Configuration)' == 'Version2' ">
<Content Include="Icon2.ico" />
</ItemGroup>
Установите значок в нормальном коде, и необходимо смочь использовать те же методы, как Вы имеете в другом месте. Вам будут нужны оба значка в файле ресурсов (по крайней мере, таким образом, я буду подозревать), но он должен работать.
С другой стороны, установите шаг перед сборкой для копирования соответствующего значка в общее имя файла - например, копирование debug.ico или release.ico в app.ico. Немного hacky, но я думаю, что он работал бы. Тем путем Вы только заканчиваете с одним значком в законченных двоичных файлах.
Еще одна опция: изучите файл типа "build" и посмотрите, как значок встроен, затем conditionalise он. Marc Gravell сделал это для ссылок в MiscUtil - проект может быть разработан, предназначаясь или для.NET 2.0 или 3.5, в зависимости от конфигурации. Я подозреваю, что ресурсы могли быть conditionalised очень похожим способом.
Создайте файлы значков, названные в честь Вашей конфигурации. (Например, DebugOld.app.ico DebugBranded.app.ico, ReleaseBranded.app.ico)
Создайте шаг перед сборкой:
copy "$(ProjectDir)$(ConfigurationName).app.ico" "$(ProjectDir)app.ico"