2017-11-21 1 views
0

Ich beginne mit Selen und Java. Ich experimentiere mit dieser https://www.argenta.nl/hypotheek/hypotheek-berekenen#/formulier Website. (es ist ein Hypothekenrechner) Ich stehe fest an dem Punkt, wo ich meinen Dienstverband auswählen und die Höhe des Einkommens (bruto jaarinkomen) eingeben und auf den Button 'ga verder' klicken muss.benötigt Textfeld ist nicht fits mit Sendkeys

Der Knopf 'ga verder'validiert, wenn das Feld Einkommen gefüllt wurde. In meinem Skript fülle ich in diesem Bereich ‚Einkommen‘ mit dieser Codezeile:.

driver.findElement(By.name("orientationCalculatorCtrlCalculatorMainApplicantIncomePermanentThisYearIncome")).sendKeys("51000"); 

Aber wenn ich auf die Schaltfläche klicken Sie auf ‚ga verder'nothing gefüllt wurde (System erhält eine rote Benachrichtigung) dachte ich senden Schlüssel war eine richtige Option zum Ausfüllen erforderlicher Textfelder. Wer kann mir helfen?

mein ganzes Testscript:

System.setProperty("webdriver.chrome.driver", "C:\\Users\\Esmee\\IdeaProjects\\seleniumTestArgenta\\src\\drivers\\chromedriver.exe"); 
    WebDriver driver = new ChromeDriver(); 
    driver.get("http://www.argenta.nl"); 
    WebElement element; 

    //opening orientation calculator (code akkoord) 
    driver.findElement(By.xpath("/html/body/div/header/div/div/div[3]/ul/li[2]/a")).click(); 
    driver.findElement(By.xpath("/html/body/div/header/div/div/div[3]/ul/li[2]/div/div/div/a[2]/div[1]")).click(); 
    driver.findElement(By.xpath("/html/body/div/div[2]/article[1]/div/div/div/div[2]/div/div/a")).click(); 

    //wait for 10 seconds 
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 

    //clicking on button 'ga verder'gives a notification (Code Akkoord) 
    driver.findElement(By.xpath("/html/body/div/div[2]/article[1]/div/form/div/ui-view[1]/div/div/div[2]/div/button")).click(); 

    //Uw situatie, select radiobutton no (= value 1), then push button 'ga verder'. 

    element = driver.findElement(By.cssSelector("input[value='1']")); 
    JavascriptExecutor executor = (JavascriptExecutor)driver; 
    executor.executeScript("arguments[0].click();", element); 

    driver.findElement(By.xpath("/html/body/div/div[2]/article[1]/div/form/div/ui-view[1]/div/div/div[2]/div/button")).click(); 

    //wait for page to load, select income, fill in 51000 
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
    driver.findElement(By.xpath("//*[@id=\"orientationCalculatorCtrlCalculatorMainApplicantIncomeVariant\"]")); 

    Select dropdown = new Select(driver.findElement(By.id("orientationCalculatorCtrlCalculatorMainApplicantIncomeVariant"))); 
    dropdown.selectByVisibleText("Vast contract"); 
    driver.findElement(By.name("orientationCalculatorCtrlCalculatorMainApplicantIncomePermanentThisYearIncome")).sendKeys("51000"); 

    //pushing button 'ga verder' (system verifies input) 
    element = driver.findElement(By.xpath("/html/body/div/div[2]/article[1]/div/form/div/ui-view[2]/div/div/div[2]/div/button")); 
    executor = (JavascriptExecutor) driver; 
    executor.executeScript("arguments[0].click();",element); 

Antwort

0

Sie könnten versuchen:

WebElement yourElement = driver.findElement(By.xpath("nameOfTheElementHere")); 
Actions act = new Actions(driver); 
act.moveToElement(yourElement).click(); 
act.sendKeys("51000"); 
act.build().perform(); 

Oder:

WebElement yourElement = driver.findElement(By.xpath("xpathHere")); 
JavascriptExecutor executor = (JavascriptExecutor)driver; 
executor.executeScript("arguments[0].click();", yourElement); 

Oder es könnte einfach eine Warte Problem sein, wobei in diesem Fall:

WebElement yourElement = driver.findElement(By.xpath("xpathHere")); 
WebDriverWait wait = new WebDriverWait(driver, 10); 
wait.until(ExpectedConditions.elementToBeClickable(yourElement)).click();