尽管元素在那里,Selenium仍显示NoSuchElementException

时间:2018-11-24 02:28:30

标签: java selenium selenium-webdriver iframe webdriverwait

所以我做了一些硒代码,但是它不允许我选择元素!我不明白。我尝试复制和粘贴示例,因此无济于事。

它说:NoSuchElementException: Unable to locate element #login\-input

这是我的Java代码:

WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait( 10, TimeUnit.SECONDS );
driver.get( "https://www.ticketmaster.com/review" );
WebElement inputElement = driver.findElement( By.id( "login-input" ) );

2 个答案:

答案 0 :(得分:1)

您的登录表单位于publications_admin.py中。首先切换您的驱动程序,尝试下面的代码:

from django.contrib import admin
from xrdb.models import Publications

admin.site.register(Publications)

答案 1 :(得分:1)

用户名密码字段位于iframe中,因此您必须:

  • 诱导 WebDriverWait 以使所需的框架可用并切换到它。
  • 诱导 WebDriverWait 以使所需的元素可点击
  • 您可以使用以下解决方案:

    WebDriver driver = new FirefoxDriver();
    driver.get( "https://www.ticketmaster.com/review" );
    new WebDriverWait(driver, 10).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.cssSelector("iframe#loginFrame")));
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("label[for='login-input']"))).sendKeys("FX_NINJA");