Я с нетерпением жду помощи, указанной ниже.
Я делал автоматизацию тестирования для приложения в Chrome с Xpath. Это работало хорошо. Но теперь у меня есть требование использовать тот же набор для кроссбраузерного тестирования в IE 11.
В настоящее время используется 2.39 IE Webdriver для Selenium. Я могу открыть браузер, но с моим X-путем, с которым был мой скрипт, не работал с X-путем в IE 11.
Вот мой вопрос
PS: Я использовал Capabilities Ignorezoom, установив значение true, требовать фокус окна на true, собственные элементы на false для Internet Explorer
Заранее спасибо
HTML-код:
<html><head>
<meta charset = "utf-8">
<meta name = "viewport" content = "width=device-width, initial-scale=1.0, user-scalable=no">
<meta name = "apple-mobile-web-app-capable" content = "yes">
<meta name = "apple-mobile-web-app-status-bar-style" content = "white">
<link rel = "shortcut icon" href = "favicon.ico?v=2" type = "image/x-icon">
<title>-</title>
<style data-styled-components = ""></style></head>
<body>
<div id = "modal"></div>
<div id = "app"><div class = "Flex-kFpfAw ixXCQP" overflow = "auto" display = "flex" width = "100%"><div class = "NavBarIndicator__NavBarIndicatorHtml-ibzzfP jRSwXJ"><div class = "NavBarIndicator__Indicator-eUunBf jITNXW"></div><div class = "NavBarIndicator__IndicatorSettings-kgrEUt cPoXyp"></div></div><div class = "Header__HeaderWrapper-cPhxZP hLpJId"><img class = "_NavBarMenu__MenuIcon-gZnMef eTeQZD" src = "/assets/images/menu.png"><div class = "Flex-kFpfAw eaWcQg" width = "100%" height = "100%" display = "flex"><div class = "Flex-kFpfAw iuKZOD" width = "200px" display = "flex"><div class = "Flex-kFpfAw cHydLU" cursor = "pointer" width = "0 auto" display = "flex"><a href = "new-client" style = "text-decoration: none;"><a class = "AnchorLink__LinkWrapper-kpcMPo iKDWLW" color = "#696969" font-size = "14px" font-family = "OpenSans">New Client</a></a></div><div class = "Flex-kFpfAw cHydLU" cursor = "pointer" width = "0 auto" display = "flex"><a class = "AnchorLink__LinkWrapper-kpcMPo cJfTFc" color = "#696969" font-size = "14px" font-family = "OpenSans">Existing Client</a></div></div></div></div><div class = "Flex-kFpfAw eXWVrO" width = "100%" display = "flex"><div class = "Flex-kFpfAw kgPlre" display = "flex" width = "100%"><div class = "Accordion__AccordionContainer-lhzlfC jUObfx" name = "basicDetailsAccordion" width = "100%"><div class = "Accordion__ActiveBar-fUxxNn dIFKrP" width = "100%"></div><div class = "Accordion__TopBarContainer-eqOfxK dbwwMy"><div class = "Accordion__HeaderText-btWcFX kpnLnx">BASICS</div><div class = "Accordion__ArrowContainer-jgNnsk joAlIe"></div></div><div class = "Accordion__ContentContainer-bNGADI dUFUSp"><div class = "Grid__Row-eThVWD keRYro"><div class = "Grid__Column-dzIFTK cYStlC"><div class = "Dropdown__DropdownContainer-iuXXkE eGcMOz" value = ""><input class = "Dropdown__InputField-XdsGe saBoZ" placeholder = "" value = ""><div class = "Dropdown__FloatingLabel-dAuMht kobteq" value = "">Title</div><div class = "Dropdown__baseIconStyle-hZrHDI dGulpi" value = ""></div><div class = "Dropdown__DescOrErrorContainer-CVXZE cVVTfy"></div><div class = "Dropdown__DropdownItemsContainer-ePnZKJ jIlnqS"></div></div></div><div class = "Grid__Column-dzIFTK cYStlC"><div class = "TextField__Wrapper-iMDdAX jeqFJ" value = ""><input class = "TextField__Input-eZJwmJ hjrRW" type = "text" value = ""><div class = "TextField__Label-hiPeUU dbpoGq" value = "">Christian Name</div><span class = "TextField__Text-jWKysX jCdXZa"></span><div></div></div></div></div><div class = "Grid__Row-eThVWD keRYro"><div class = "Grid__Column-dzIFTK cYStlC"><div class = "TextField__Wrapper-iMDdAX jeqFJ" value = ""><input class = "TextField__Input-eZJwmJ hjrRW" type = "text" value = ""><div class = "TextField__Label-hiPeUU dbpoGq" value = "">Given Name</div><span class = "TextField__Text-jWKysX jCdXZa"></span><div></div></div></div><div class = "Grid__Column-dzIFTK cYStlC"><div class = "TextField__Wrapper-iMDdAX jeqFJ" value = ""><input class = "TextField__Input-eZJwmJ hjrRW" type = "text" value = ""><div class = "TextField__Label-hiPeUU dbpoGq" value = "">Surname *</div><span class = "TextField__Text-jWKysX jCdXZa"></span><div></div></div></div></div><div class = "Grid__Row-eThVWD keRYro"><div class = "Grid__Column-dzIFTK cYStlC"><div class = "Dropdown__DropdownContainer-iuXXkE eGcMOz" value = ""><input class = "Dropdown__InputField-XdsGe saBoZ" placeholder = "" value = ""><div class = "Dropdown__FloatingLabel-dAuMht kobteq" value = "">Marital Status</div><div class = "Dropdown__baseIconStyle-hZrHDI dGulpi" value = ""></div><div class = "Dropdown__DescOrErrorContainer-CVXZE cVVTfy"></div><div class = "Dropdown__DropdownItemsContainer-ePnZKJ jIlnqS"></div></div></div><div class = "Grid__Column-dzIFTK cYStlC"><div class = "TextField__Wrapper-iMDdAX jeqFJ" value = ""><input class = "TextField__Input-eZJwmJ hjrRW" type = "date" value = ""><div class = "TextField__Label-hiPeUU dbpoGq" value = ""></div><span class = "TextField__Text-jWKysX jCdXZa"></span><div></div></div></div></div><div class = "Grid__Row-eThVWD keRYro"><div class = "Grid__Column-dzIFTK cYStlC"><div class = "Dropdown__DropdownContainer-iuXXkE eGcMOz" value = ""><input class = "Dropdown__InputField-XdsGe saBoZ" placeholder = "" value = ""><div class = "Dropdown__FloatingLabel-dAuMht kobteq" value = "">Nationality</div><div class = "Dropdown__baseIconStyle-hZrHDI dGulpi" value = ""></div><div class = "Dropdown__DescOrErrorContainer-CVXZE cVVTfy"></div><div class = "Dropdown__DropdownItemsContainer-ePnZKJ jIlnqS"></div></div></div><div class = "Grid__Column-dzIFTK cYStlC"><div class = "TextField__Wrapper-iMDdAX jeqFJ" value = ""><input class = "TextField__Input-eZJwmJ hjrRW" type = "text" value = ""><div class = "TextField__Label-hiPeUU dbpoGq" value = "">NRIC or Passport number</div><span class = "TextField__Text-jWKysX jCdXZa"></span><div></div></div></div></div><div class = "Grid__Row-eThVWD keRYro"><div class = "Grid__Column-dzIFTK cYStlC"><div class = "Flex-kFpfAw hhPbtN" height = "80px" value = "maleRadio" display = "flex" width = "100%"><div class = "Radio__Header-iLHfxq epdwGX">Gender</div><div class = "Flex-kFpfAw kgPlre" display = "flex" width = "100%"><div class = "Radio__Child-iQExMs iJGsOb" value = "maleRadio">Male</div><div class = "Radio__Child-iQExMs gETYuF" value = "femaleRadio">Female</div></div></div></div><div class = "Grid__Column-dzIFTK cYStlC"><div class = "Flex-kFpfAw hhPbtN" height = "80px" value = "smokerYesRadio" display = "flex" width = "100%"><div class = "Radio__Header-iLHfxq epdwGX">Smoker</div><div class = "Flex-kFpfAw kgPlre" display = "flex" width = "100%"><div class = "Radio__Child-iQExMs iJGsOb" value = "smokerYesRadio">Yes</div><div class = "Radio__Child-iQExMs gETYuF" value = "smokerNoRadio">No</div></div></div></div></div></div></div></div><div class = "Flex-kFpfAw kgPlre" display = "flex" width = "100%"><div class = "Accordion__AccordionContainer-lhzlfC iOrkBi" name = "contactDetailsAccordion" width = "100%"><div class = "Accordion__ActiveBar-fUxxNn dRpCWJ" width = "100%"></div><div class = "Accordion__TopBarContainer-eqOfxK dbwwMy"><div class = "Accordion__HeaderText-btWcFX kpnLnx">CONTACT</div><div class = "Accordion__ArrowContainer-jgNnsk cmIaNs"></div></div></div></div><div class = "Flex-kFpfAw kgPlre" display = "flex" width = "100%"><div class = "Accordion__AccordionContainer-lhzlfC iOrkBi" name = "educationDetailsAccordion" width = "100%"><div class = "Accordion__ActiveBar-fUxxNn dRpCWJ" width = "100%"></div><div class = "Accordion__TopBarContainer-eqOfxK dbwwMy"><div class = "Accordion__HeaderText-btWcFX kpnLnx">EDUCATION & OCCUPATION</div><div class = "Accordion__ArrowContainer-jgNnsk cmIaNs"></div></div></div></div><div class = "Flex-kFpfAw kgPlre" display = "flex" width = "100%"><div class = "Accordion__AccordionContainer-lhzlfC iOrkBi" name = "othersAccordion" width = "100%"><div class = "Accordion__ActiveBar-fUxxNn dRpCWJ" width = "100%"></div><div class = "Accordion__TopBarContainer-eqOfxK dbwwMy"><div class = "Accordion__HeaderText-btWcFX kpnLnx">OTHERS</div><div class = "Accordion__ArrowContainer-jgNnsk cmIaNs"></div></div></div></div><div class = "Flex-kFpfAw kgPlre" display = "flex" width = "100%"><div class = "Flex-kFpfAw iJaRwj" width = "100%" display = "flex"><a href = "/client"><input class = "Button__ButtonHtml-kIBguK eybnQU" type = "submit" value = "Back"></a><div class = "Space-fYzrqg kpkBkk"></div><input class = "Button__ButtonHtml-kIBguK kkGQYo" type = "submit" value = "Next"></div></div></div><div class = "Overlay__OverlayHtml-fHbRtE iMIwlR"></div><div class = "NavBarIndicator__NavBarIndicatorHtml-ibzzfP jRSwXJ"><div class = "NavBarIndicator__Indicator-eUunBf jITNXW"></div><div class = "NavBarIndicator__IndicatorSettings-kgrEUt cPoXyp"></div></div><div class = "NavBar__NavBarHtml-AmdPv dLHKZS" color = "red"><div class = "NavBar__CloseButton-bbtqJM jXPpvT"><img class = "NavBar__CloseIcon-kbJaLK hqvvWp" src = "/assets/images/leftArrow.png"></div><a id = "new-proposal" href = "/client" style = "text-decoration: none;"><div class = "_NavBarButton__NavBarButtonHtml-jFBQvK hjgrnZ"><img class = "_NavBarButton__NavBarIcon-koVGUP gjfdcG" src = "/assets/images/addActive.png"><br><div class = "_NavBarButton__Label-deFDME llMpjg">New Proposal</div></div></a><a href = "/transactions" style = "text-decoration: none;"><div class = "_NavBarButton__NavBarButtonHtml-jFBQvK hjgrnZ"><img class = "_NavBarButton__NavBarIcon-koVGUP gjfdcG" src = "/assets/images/transaction.png"><br><div class = "_NavBarButton__Label-deFDME ofuLs">Transactions</div></div></a><a href = "/opportunity" style = "text-decoration: none;"><div class = "_NavBarButton__NavBarButtonHtml-jFBQvK hjgrnZ"><img class = "_NavBarButton__NavBarIcon-koVGUP gjfdcG" src = "/assets/images/opportunity.png"><br><div class = "_NavBarButton__Label-deFDME ofuLs">Opportunity</div></div></a><a href = "/settings" style = "text-decoration: none;"><div class = "NavBar__SettingsButton-gpFICj jHbjOK"><img class = "NavBar__NavBarIcon-blvkXP fBFcQi" src = "/assets/images/setting.png"><br><div class = "NavBar__Label-eCmPLc cIziCb">Settings</div></div></a></div></div></div>
<script type = "text/javascript" src = "/assets/js/vendors~main.50b6700db1e18bf97471.js"></script><script type = "text/javascript" src = "/assets/js/main.50b6700db1e18bf97471.js"></script>
<!-- version: PROD --></body></html>

Ответ - Нет. используйте cssSelector, иногда xpath может работать, если он не слишком абсолютный. Может быть, родственник сделает работу намного проще.
В IE нет встроенной поддержки xpath, используйте снова cssSelector, чтобы решить эту проблему.
Из всех форумов я понял, что нужно использовать CSS вместо X-пути, я также могу сделать то же самое, но просто чтобы понять, является ли X-путь одинаковым для Chrome и IE 11.
Наконец, я хотел бы понять основную вещь, когда мы говорим, что встроенная поддержка Xpath отсутствует, например, в браузере - что мы имеем в виду
Это означает, что движок IE не имеет ничего для xpath, IE должен использовать стороннюю организацию для работы с xpath.
Надеюсь, это будет полезно.
PS: я хочу попробовать, если это то же самое для других текстовых полей. Но, к сожалению, да для всех текстовых полей. Я хочу понять, это проблема с моим кодом, драйвером Locator или IE (я использую драйвер IE 2.39) или разработкой приложений (это приложение React). Но самое забавное, что все работает правильно, без сбоев в Chrome. Только в IE я сталкиваюсь со всеми этими проблемами
Означает ли это, что я должен или могу использовать только идентификатор настройки, прося разработчика сохранить идентификатор и могу получить доступ к элементам только с идентификатором :(
Нет, вам не следует просить разработчика о каких-либо изменениях. Вы должны использовать id, classname, tagname, linkText, partialLinkText, затем css, а затем xpath.
Спасибо за быстрый ответ. Но разработанное сейчас приложение не имеет уникального идентификатора для элементов. Он создается динамически. Пожалуйста, помогите мне в таком случае, как я могу это сделать.
Не могли бы вы поделиться html-кодом? Вы можете отредактировать вопрос и обновить его с помощью html-кода, спасибо!
Проблема, с которой вы сейчас столкнулись, может быть связана с драйвером IE и версией браузера.
Я обновил код Html для одного из элементов. Для того же элемента я попытался установить текст всеми возможными способами, но в хроме он работает, но, например, значение в пользовательском интерфейсе устанавливается, но позже, когда я печатаю, получаю текст или получаю атрибут значения печатает пустым. также, как только я перейду к другому элементу, значение исчезнет.
Пожалуйста, помогите мне узнать, какую версию драйвера мне нужно использовать, например, для 11. Возможно, если вы поможете мне отправить ссылку, я могу попробовать ее и сообщить вам.
@AadityaSeshadri: не таким образом, щелкните правой кнопкой мыши на веб-странице, нажмите «Проверить», а затем в разделе элементов вы увидите html, поделитесь этим html.
Конечно, я буду делиться ссылками несколько раз. Просто дай мне на это время.
спасибо, я скопировал html страницы. Пожалуйста, посмотрите. Заранее спасибо
Хорошо, я разберусь в этом вопросе и сообщу вам, как только что-нибудь получу.
Спасибо :) жду ценного решения
Не могли бы вы сообщить мне совместимый IE Webdriver для IE 11, чтобы я сомневался, что использую неправильную версию. Если версия изменилась, все будет хорошо.
Нашел полезную ссылку: github.com/SeleniumHQ/selenium/wiki/…
@AadityaSeshadri: всегда, брат.
Спасибо, эксперт :) Должен понять от вас, что я не могу использовать Xpath. Но пока я пробовал с CSS. Что случилось, у меня есть текстовое поле, которое отлично работает с Xpath в Chrome. Но в IE, когда я пытался использовать css, он устанавливает значение, но при перемещении в другой элемент значение набора исчезает. Пробовал с Thread.sleep, WebDriver wait Untill существование элемента, Первый щелчок и последующая отправка ключей, класс Action, исполнитель сценария Java, все, но такое же поведение, которое я вижу. (Установка значения, но когда фокус перемещается, значение исчезает). Но когда вручную установите его значение настройки навсегда.