2017-04-06 23 views
0

我想知道我們是否可以使用sendKeys(Keys.RETURN),sendKeys(Keys.ENTER)sendKeys(Keys.SPACE)單擊按鈕或選擇一個複選框。我們可以使用sendKeys(Keys.RETURN),sendKeys(Keys.ENTER)和sendKeys(Keys.SPACE)來點擊按鈕或選擇複選框

當我使用click();時,沒有任何事情發生(既不點擊框也不關閉瀏覽器)。 當我使用sendKeys(Keys.RETURN);瀏覽器被關閉,而不選擇框

HTML:

<section class="payment-buttons"> 
    <div class="section-heading"> 
     <h2> How would you like to pay?</h2> 
    </div> 
    <div class="payment-type-selection clearfix"> 
     <div class="payment-type creditdebit-btn" data-source="creditdebit" onclick="creditdebitSelect(this,'true');"> 
      <h5>Credit or Debit Card</h5> 
      <i class="icon-cards"></i> 
     </div> 
     <div class="payment-type paypal-btn" data-source="paypal" onclick="paypalSelect(this,'true');"> 
      <h5>PayPal</h5> 
      <i class="icon-paypal"></i> 
     </div> 
     <div class="payment-type giftcard-btn" data-source="giftcard" onclick="giftcardSelect(this,'true');"> 
      <h5>Gift Card</h5> 
      <i class="icon-giftcard"></i> 
     </div> 
    </div> 
</section> 

代碼:

WebDriverWait wait1=new WebDriverWait(driver, 10000); 
wait1.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[2]/div[2]/section/div[2]/div"))).click(); 

誰能告訴我如何去點擊上面的代碼按鈕?

+0

什麼'creditdebitSelect(這一點, '真')'呢?你是否試圖點擊某個東西(帶有圖標的div)來檢查另一個組件(另一個輸入複選框)?你可以嘗試改變你的'By.xpath(...)'By.cssSelector(「div [data-source ='creditdebit'] i.icon-cards」)'看看它是否有效? – Tom

+0

仍然同樣的事情發生..瀏覽器關閉沒有點擊icon.by點擊此圖標/ box this creditdebitSelect(this,'true');功能會調用並打開卡詳細信息表單。 –

+0

我得到以下錯誤時使用css定位器 線程「主」中的異常org.openqa.selenium.WebDriverException:元素在點(273,567.7999877929688)不可點擊。其他元素將收到點擊:

命令持續時間或超時:73毫秒 –

回答

0

您可以強制掣子元件是這樣的:

WebDriverWait wait1=new WebDriverWait(driver, 10000); 
Actions actions = new Actions(driver); 
actions.moveToElement(wait1.until(driver.findElement(By.xpath("//select[@id='category']/option[@id='cat2']"))).click().build().perform(); 

希望它可以幫助你:)