2016-04-26 57 views
0

我試圖通過自動創建一些電子郵件,但我堅持;Selenium按鈕不是WebElement

https://app.tutanota.de/#register

<div class="record"> 
         <div class="recordName"></div> 
           <div class="formAction"> 
             <button class="single fontImage confirm disabled" type="submit" data-bind="css: { disabled: !isCreateAccountPossible() }, lang: 'createAccount_action'">Hesap oluştur</button> 
             <button class="single" data-bind="fastClick: login, lang: 'backTologin_action'">Giriş'e dön</button> 
             <label class="recordStatus invalid" data-bind="lang: getCreateAccountErrorMessage()">Lütfen bir şifre giriniz.</label> 
            </div> 
           </div> 

但我甚至無法找到或點擊該按鈕

<button class="single fontImage confirm disabled" type="submit" data-bind="css: { disabled: !isCreateAccountPossible() }, lang: 'createAccount_action'">Hesap oluştur</button> 

我試着用XPath和類名等;

driver.findElement(By.xpath("//button[@type='button' and @class='single fontImage confirm']")).click(); 

driver.findElement(By.classname("single fontImage confirm")); 

我試過了;

driver.findElement(By.cssSelector("...(divs and classes until I reach button classname like #somediv .someclass #anotherdiv .anotherclass .single fontImage confirm)")); 

而且,當你把信息如郵件和密碼,但直到指向它的類名是single fontImage confirm disabled把信息同級車之後這個按鈕類是改變成爲single fontImage confirm

我知道這是非常基本的問題,但我嘗試了很多事情來讓它工作,但沒有運氣。任何幫助表示讚賞。謝謝 !

回答

2

您的所有定位器都不正確。第一個by.xpath問題是按鈕類型和類。按鈕類型是'submit',類應該使用contains而不是equal。第二個by.classname不正確,因爲'disabled'缺失。我不明白第三個cssSelector。

By.xpath("//div[@class='formAction']/button[contains(@class,'single fontImage')]"); 
+0

謝謝!現在我知道如何使用定位器。 –

1

通過CSS類選擇元素的最方便的方法是使用CSS選擇器

div.formAction > button.single.fontImage.confirm 

您可以使用cssSelector:

By.cssSelector("div.formAction > button[class*='single fontImage']"); 

或XPath上述選擇器將會找到div e字元素與formAction類,然後返回一個包含子元素button所有,但不限於以下類:singlefontImageconfirm