我正在嘗試編寫一個測試,檢查是否選中了複選框,如果未選中,將使用哪種方法進行檢查。檢查是否未選中複選框
我已經寫了檢查一個複選框代碼,
driver.find_element(:id, 'id_of_the_element').click();
,但我還是想檢查是否有人檢查或還沒有爲其他測試情況
TYIA!
我正在嘗試編寫一個測試,檢查是否選中了複選框,如果未選中,將使用哪種方法進行檢查。檢查是否未選中複選框
我已經寫了檢查一個複選框代碼,
driver.find_element(:id, 'id_of_the_element').click();
,但我還是想檢查是否有人檢查或還沒有爲其他測試情況
TYIA!
我認爲你期待Ruby中的代碼片段,因爲它寫了ruby代碼片段。如果你想檢查未經檢查的複選框,此代碼有效。如果您需要更多更改,您可以修改它。
element=driver.find_element(:id, 'id_of_the_element');
if(element.attribute("checked")=="false")
{
element.click();
}
此方法適合我的原因!謝謝! – Aurb
if((cb.isChecked())
{
//Checkbox is true.
}
else
{
//Checkbox is false.
}
儘管此代碼片段可能會解決問題,但它並不能解釋爲什麼或如何回答問題。請包含您的代碼的說明,因爲這有助於提高帖子的質量。請記住,您將來會爲讀者回答這個問題,而這些人可能不知道您的代碼建議 –
要檢查複選框被選中與否,你必須調用isChecked()
方法是這樣的:
if(checkbox.isChecked()) {
// The checkbox is checked
} else {
// The checkbox isn't checked
}
雖然設置複選框的狀態,你必須調用setChecked()
方法傳遞作爲參數true
來檢查它並且false
取消選中它。
看來你使用水豚用appium,但由於某種原因你調用驅動程序的具體方法,而不是使用正常的水豚API 。取而代之的是driver.find_element(:id, 'id_of_the_element').click();
的,你應該只調用任
page.find(:id, 'id_of_the_element').click() # use the id selector
page.find('#id_of_the_element').click() # use default CSS with an id selector
找到並單擊某個元素ID爲「id_of_the_element」。在處理特定元素類型時,還有其他方法可用,因此對於複選框,我們有check
和uncheck
- http://www.rubydoc.info/gems/capybara/Capybara/Node/Actions#check-instance_method - 將檢查或取消選中複選框,同時檢查它是否已被選中/未選中。所以
page.check('id_of_the_element)
將確保一個<輸入類型=「複選框」 ID =「id_of_the_element>元素保留在選中狀態,無論國家是前。
如果您仍然需要檢查一個複選框是否被選中 - http://www.rubydoc.info/gems/capybara/Capybara/Node/Element#checked%3F-instance_method - 你可以使用任何的
page.find('#id_of_the_element').checked? # return checked state of any element
page.find(:checkbox, 'id_of_the_element').checked? # will only find actual checkbox elements
page.find_field('id_of_the_element', type: 'checkbox').checked?
...
,或者如果你想要斷定一個複選框被選中以下任一會那樣做 - http://www.rubydoc.info/gems/capybara/Capybara/RSpecMatchers
expect(page).to have_selector(:checkbox, 'id_of_the_element', checked: true)
expect(page).to have_field('id_of_the_element', type: 'checkbox', checked: true)
expect(page).to have_checked_field('id_of_the_element')
當我嘗試使用page.find方法時,它列出了該頁面上可用的所有元素ID,但無法找到該元素。但page.find_element以某種方式工作。我想我必須閱讀你給我的所有文件。謝謝! – Aurb
@Aurb然後它聽起來像你實際上沒有在Appium中使用水豚,並應該從問題中刪除水豚標籤。 –
,我認爲是非常simplier ...(與Python會是這樣)
def isChecked(self, webElement):
if webElement.get_attribute("checked") == 'true':
return True
else:
return False
idk關於你正在使用的東西,但在Android中該函數被稱爲isChecked(),也許檢查你的文檔 –
@SaikCaskey,我使用ruby和水豚寫我的測試用例。 – Aurb