在Python中使用Selenium无法单击span类元素

时间:2019-05-21 09:12:04

标签: python selenium

我无法使用以下代码单击链接:

<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 :(得分:0)

您通过使用 ng-click 属性提供了HTML代码。它应用于不可点击<div>节点。元素为{{3 }}元素。

我在Java中运行此代码。

为此,我可以使用Angular单击“使用手机号码和密码登录/注册” 按钮。

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

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

executeScript:-

此方法在Selenium中当前选定的框架或窗口的上下文中执行JavaScript。此方法中使用的脚本在匿名函数(没有名称的函数)的主体中运行。我们还可以将复杂的参数传递给它。

脚本可以返回值。返回的数据类型为

    布尔值
    字符串
    列表
    WebElement。

**注意:您必须添加以下导入:

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebElement;