Первый XPath работает в то время как не вторая:Не работает селеном XPath
Первое:
"//*[@id='j_idt46:j_username']";
Второе:
"//*[contains(@id,'username']";
Почему?
Первый XPath работает в то время как не вторая:Не работает селеном XPath
Первое:
"//*[@id='j_idt46:j_username']";
Второе:
"//*[contains(@id,'username']";
Почему?
Для того, что можно было высчитать из предоставленной информации, то, как вы используете, возможно, содержит неприемлемый:
Как отметил @TuringTux - //*[contains(@id,'username')]
может быть возможно изменением, если же подкладка идет как это в вашем коде.
Также следует принять надлежащую практику в //*[contains(@id,'username')]
, заменив *
на тип элемента в html.
И, наконец, при попытке доступа к элементам с использованием //*[contains(@id,'username')]
может возникнуть вероятность того, что вы получите список этих похожих WebElements, хотя вы, возможно, пытаетесь получить доступ только к одному в одно и то же время.
Возможно, потому что у вас отсутствует закрывающая скобка? Попробуйте '' // * [содержит (@ id, 'username')] ";' (с закрывающей скобкой после '' username''). – TuringTux
какая ошибка вы получаете? было бы хорошо, если бы вы могли поделиться html для одного и того же элемента и всего кода (добавить язык также), используя/ – nullpointer
Спасибо! Только забыли закрытие кронштейна. – gartenkralle