1
所以我有一個特殊的問題創建HTML元素,在我的反應組分i中使用這樣的命令:的JavaScript測試
document.getElementById('modalsContainer').appendChild(recognitionProfileZoom);
document.getElementById('modalsContainer').appendChild(categoryZoom);
和:
document.getElementById('cddoccategoryzoom').value;
但是通過ID中指定的這些元素不存在於我的組件中。
如何在測試中創建這些對象?
下面的代碼將使用這些元素,而是因爲他們不存在,則失敗(的hideModal功能利用從之前的document.append)
describe("CaptureProfileModal functions tests", function() {
it('Should hide the modal', function() {
var wrapper, instance;
wrapper = mount(
<CaptureProfileModal
gridAction={1}
captureSettingCode={15}
fields={mockedFields}/>
);
wrapper.setState({
showModal: true
});
instance = wrapper.component.getInstance();
instance.hideModal();
});
對於初學者來說,所有ID都是小寫字母,如果您希望它可以與所有瀏覽器一起使用,則不應在ID中使用大寫字母。也可以使用獲取元素並檢查getElementByID的返回值,但不要認爲它會成功。 – SPlatten
HTML元素ID [區分大小寫](https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementById)。自IE8以來的所有瀏覽器都支持'getElementById'中的區分大小寫的字符串。 –
爲什麼你不只是嘲笑他們? –