Невозможно щелкнуть элемент класса span, используя Selenium в Python. - PullRequest
0 голосов
/ 21 мая 2019

Я не могу нажать на ссылку, используя следующий код:

<div class="qrcode-footer-text" ng-click="toggleQRLoginFormView()" tabindex="0">
    <span ga-clickevent="" screen-name="auth-init/QRlogin" event-category="login_v2" user-actions="login_clicked" event-action="login_clicked" event-type="customEvent" event-label="">Login/Signup with mobile number and password</span>
</div>
driver = webdriver.Firefox()
url = 'https://paytm.com/loan-emi-payment'
driver.get(url)
driver.find_element_by_xpath('//div[contains(@class,"_3SzD")]').click()
time.sleep(5)
iframe = driver.find_elements_by_tag_name('iframe')[0]

driver.switch_to.frame(iframe)
driver.implicitly_wait(10)
driver.find_element_by_xpath('//span[contains(@screen-name,"auth-init/QRlogin")]').click()

1 Ответ

0 голосов
/ 22 мая 2019

Вы указали HTML-код в этом атрибуте ng-click . Он применяется к узлу <div>, который не активен .и элемент Угловой element.

Я запускаю этот код в Java ..

, используя JavascriptExecutor Я могу нажать «Войти / Зарегистрироваться с помощью мобильного номера и пароля» *Кнопка 1015 *.

 WebElement element= driver.findElement(By.cssSelector(".qrcode-footer-text"));

 JavascriptExecutor executor = (JavascriptExecutor) driver;
 executor.executeScript("arguments[0].click();", element);

executeScript: -

Этот метод выполняет JavaScript в контексте текущего выбранного фрейма или окна в Selenium.Сценарий, используемый в этом методе, выполняется в теле анонимной функции (функции без имени).Мы также можем передавать сложные аргументы.

Скрипт может возвращать значения.Возвращаемые типы данных:

** Примечание:Вы должны добавить следующий импорт:

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebElement;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...