Как определить xpath, который может быть потомком iframe - PullRequest
0 голосов
/ 03 января 2019

Я новичок в области автоматизации, в настоящее время я учусь онлайн самостоятельно.Мне было интересно, если кто-нибудь поможет мне определить xpath для флажка на этом домо https://www.google.com/recaptcha/api2/demo Любой вклад будет высоко оценен!

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Надежным способом было бы определить точный iframe, который вам нужен, и затем переключиться на него:

WebElement frameElement = driver.findElement(By.xpath(//div[@id='recaptcha-demo']//iframe)); // find the exact iframe element and save reference to it
driver.switchTo().frame(frameElement); // switch context to required frame
driver.findElement(By.xpath("//span[@id='recaptcha-anchor']") // click checkbox
driver.switchTo().defaultContent(); // to switch context back to initial document

Порядок или количество кадров могут отличаться, поэтому этот подход гарантирует, что у вас есть правильный.

0 голосов
/ 03 января 2019

CheckBox на демо находится внутри iframe. Для взаимодействия с флажком необходимо перейти в рамку с кодом ниже:

driver.switchTo().frame(0);

затем, вы можете использовать один из приведенных ниже путей xpath для взаимодействия с ним:

//span[@id='recaptcha-anchor']

или

//*[@class='recaptcha-checkbox goog-inline-block recaptcha-checkbox-unchecked rc-anchor-checkbox']

или

/html[1]/body[1]/div[2]/div[3]/div[1]/div[1]/div[1]/span[1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...