int wdFindElementById(WebDriver* driver, WebElement* element, const wchar_t* id, WebElement** result) { if (!driver || !driver->ie) { return ENOSUCHDRIVER; } CComPtr<IHTMLDOMNode> res; InternetExplorerDriver* ie = driver->ie; CComPtr<IHTMLElement> elem; if (element && element->element) { elem = element->element->getWrappedElement(); } try { ElementWrapper* wrapper; int res = ie->selectElementById(elem, id, &wrapper); if (res != SUCCESS) { return res; } WebElement* toReturn = new WebElement(); toReturn->element = wrapper; *result = toReturn; return SUCCESS; } END_TRY; }
int wdFindElementById(WebDriver* driver, WebElement* element, const wchar_t* id, WebElement** result) { CComPtr<IHTMLDOMNode> res; InternetExplorerDriver* ie = driver->ie; CComPtr<IHTMLElement> elem; if (element && element->element) { elem = element->element->getWrappedElement(); } ElementWrapper* wrapper = NULL; try { wrapper = ie->selectElementById(elem, id); } catch (std::wstring& ) { return -1; } if (!wrapper) { return -2; } WebElement* toReturn = new WebElement(); toReturn->element = wrapper; *result = toReturn; return 0; }
int wdFindElementById(WebDriver* driver, WebElement* element, const wchar_t* id, WebElement** result) { *result = NULL; if (!driver || !driver->ie) { return ENOSUCHDRIVER; } InternetExplorerDriver* ie = driver->ie; CComPtr<IHTMLElement> elem; if (element && element->element) { elem = element->element->getWrappedElement(); } try { clock_t end = endAt(driver); int res = ENOSUCHELEMENT; do { ElementWrapper* wrapper; res = ie->selectElementById(elem, id, &wrapper); if (res != SUCCESS) { continue; } WebElement* toReturn = new WebElement(); toReturn->element = wrapper; *result = toReturn; return SUCCESS; } while (clock() < end); return res; } END_TRY; }