Гарантированного решения этой проблемы не существует, поскольку номер телефона физически не хранится на всех SIM-картах или не транслируется из сети в телефон. Это особенно справедливо в некоторых странах, где требуется физическая проверка адреса, причем назначение номера происходит только потом. Назначение телефонного номера происходит в сети - и его можно изменить без изменения SIM-карты или устройства (например, так поддерживается перенос).
Я знаю, что это боль, но, скорее всего, лучшим решением является просто попросить пользователя ввести свой номер телефона один раз и сохранить его.
Вам необходимо заменить
//div[contains(@class='loader-overlay')]
на
//div[contains(@class, 'loader-overlay')]
Обратите внимание, что вы должны использовать синтаксис [@attr = "value"]
, если хотите проверить, является ли значение атрибута точно [ 113] , но contains
синтаксис [contains(@attr, "value")]
Это сообщение об ошибке ...
org.openqa.selenium.InvalidSelectorException: Given xpath expression "//div[contains(@class='loader-overlay')]" is invalid: [Exception... "<no message>" nsresult: "0x8060000d (<unknown>)" location: "JS frame :: chrome://marionette/content/element.js :: element.findByXPath :: line 401" data: no]
For documentation on this error, please visit: http://seleniumhq.org/exceptions/invalid_selector_exception.html
... подразумевает, что выражение xpath не было допустимым.
Если элемент имеет один атрибут class как loader-overlay
, вам нужно изменить xpath as:
"//div[@class='loader-overlay']"
Если элемент имеет несколько атрибутов , класса и loader-overlay
, один из них вам нужен изменить xpath следующим образом:
"//div[contains(@class, 'loader-overlay')]"