Reputation: 333
Cannot click on the form button but can see it on screen. I can see the button but for some reason cannot click on it, the button is definitely in view in the middle of the screen. Tried, xpath, id, class etc. There seems to be a button above it that is hidden with the same id also. The html is included here also. Not sure what I am missing. Thanks
=== RESTART: C:\ffox_Data_Source_SCCM.py ===
Traceback (most recent call last):
File "C:\Selenium\ffox_Data_Source_SCCM.py", line 67, in <module>
import_btn.click()
File "C:\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
self._execute(Command.CLICK_ELEMENT)
File "C:\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webelement.py", line 628, in _execute
return self._parent.execute(command, params)
File "C:\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 320, in execute
self.error_handler.check_response(response)
File "C:\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException: Message: Element <button id="import_button" class="web" name="import_button" type="submit"> could not be scrolled into view
### CODE ###
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.action_chains import ActionChains
base_url = "xxx"
driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.get(base_url)
username = driver.find_element_by_id("userNameInput")
username.send_keys("xxx")
time.sleep(1)
password = driver.find_element_by_id("passwordInput")
password.send_keys("xxx")
password.send_keys(Keys.RETURN)
time.sleep(6)
driver.implicitly_wait(5)
createnew = driver.find_element_by_id("filter")
createnew.send_keys("sys_data_source.list")
time.sleep(2)
createnew.send_keys(Keys.RETURN)
time.sleep(1)
driver.switch_to_frame("gsft_main")
time.sleep(1)
name_field = element = driver.find_element(By.XPATH, '/html/body/div[1]/div[1]/span/div/div[5]/table/tbody/tr/td/div/table/thead/tr[2]/td[3]/div/div/div/input')
name_field.send_keys("SCCM 2012 v2")
name_field.send_keys(Keys.RETURN)
time.sleep(1)
comp_identity = driver.find_element(By.XPATH, '//a[contains(text() , "SCCM 2012 v2 Computer Identity")]')
comp_identity.click()
time.sleep(3)
test_load = driver.find_element(By.XPATH, '//a[contains(text() , "Test Load 20 Records")]')
test_load.click()
time.sleep(10)
run_transform = driver.find_element(By.XPATH, '//a[contains(text() , "Run Transform")]')
run_transform.click()
time.sleep(3)
import_btn = driver.find_element(By.XPATH, '//*[@id="import_button"]')
import_btn.click()
time.sleep(1)
### HTML ####
<form action="ui_page_process.do?sys_id=d84d17080af04cc80091cff5048b6f40" id="form.d84d17080af04cc80091cff5048b6f40" method="POST">
<input name="sysparm_ck" id="sysparm_ck" type="hidden" value="88fc0b14db33d780dd62d7795e96193fb827f686fb649455da15cfd760143730135ac52f">
<link rel="stylesheet" href="styles/heisenberg/heisenberg_all.css">
<nav class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<span class="btn btn-default icon-chevron-left navbar-btn" onclick="back();"></span>
<h1 style="display:inline-block;" class="navbar-title">Specify Import set and Transform map</h1>
</div>
</div>
</nav>
<div style="margin-left: 20px; padding-bottom: 20px; padding-right: 20px;" name="run_transform_table" id="run_transform_table">
<div style="padding-top:20px;padding-bottom:20px;">
<table style="width:100%;">
<tbody>
<tr id="map_select">
<td>
</td>
</tr>
</tbody>
</table>
</div>
<div><button class="web" name="import_button" id="import_button" style="display:none;" type="submit" onclick="onSubmit();" classname="web">Transform</button><button class="btn btn-primary" name="import_button" id="import_button" type="submit" onclick="onSubmit();">Transform</button><span id="loading" name="loading" style="display: none"><img src="images/loading_anim2.gifx" alt="Transforming..."><strong>Transforming...</strong></span></div>
</div>
</form>
<input name="sysparm_ck" id="sysparm_ck" type="hidden" value="88fc0b14db33d780dd62d7795e96193fb827f686fb649455da15cfd760143730135ac52f">
<link rel="stylesheet" href="styles/heisenberg/heisenberg_all.css">
<nav class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<span class="btn btn-default icon-chevron-left navbar-btn" onclick="back();"></span>
<h1 style="display:inline-block;" class="navbar-title">Specify Import set and Transform map</h1>
</div>
</div>
</nav>
<script>function back() {
window.history.back();
}
</script>
<div style="display:none;" class="notification notification-info" id="info_message"><span id="info_message_text">1533405277173</span><button data-dismiss="alert" class="btn-icon close icon-cross"><span class="sr-only">Close</span></button></div>
<div style="display:none;" class="notification notification-warning" id="warning_message"><span id="warning_message_text">1533405277173</span><button data-dismiss="alert" class="btn-icon close icon-cross"><span class="sr-only">Close</span></button></div>
<div style="margin-left: 20px; padding-bottom: 20px; padding-right: 20px;" name="run_transform_table" id="run_transform_table">
<div class="form-group is-required" id="importset" style="overflow:hidden;padding-top:20px;">
<label class="col-sm-2 control-label" for="import_set" style="text-align:right;"><span class="required-marker"></span>Import set</label>
<span class="col-sm-4">
<div class="select2-container form-control sn-select-basic required" id="s2id_import_set">
<a href="javascript:void(0)" class="select2-choice" tabindex="-1"> <span class="select2-chosen" id="select2-chosen-1">ISET000238110 - imp_sccm2012v2_computer_id (2018-08-04 17:54:53)</span><abbr class="select2-search-choice-close"></abbr> <span class="select2-arrow" role="presentation"><b role="presentation"></b></span></a><label for="s2id_autogen1" class="select2-offscreen">Import set</label><input class="select2-focusser select2-offscreen" type="text" aria-haspopup="true" role="button" aria-labelledby="select2-chosen-1" id="s2id_autogen1">
<div class="select2-drop select2-display-none select2-with-searchbox">
<div class="select2-search"> <label for="s2id_autogen1_search" class="select2-offscreen">Import set</label> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="select2-input" role="combobox" aria-expanded="true" aria-autocomplete="list" aria-owns="select2-results-1" id="s2id_autogen1_search" placeholder=""> </div>
<ul class="select2-results" role="listbox" id="select2-results-1"> </ul>
</div>
</div>
</span>
</div>
<div style="padding-top:20px;padding-bottom:20px;">
<table style="width:100%;">
<tbody>
<tr id="map_select">
<td>
<script language="JavaScript" src="scripts/classes/GwtWindowList.jsx?v=05-10-2018_1459"></script><script language="JavaScript" src="scripts/classes/GwtSelectTable.jsx?v=05-10-2018_1459"></script><script>function map_select_sb_populate(leftzone, rightzone) {
// do nothing, we are populating the zones manually
}
</script>
<table id="map_select_sb_tbl" border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td align="center">Available maps</td>
</tr>
<tr>
<td width="40%" style="vertical-align:top; border:1px solid #999;" dropzone="true">
<div style="height: 200px; width: 100%; overflow: auto; border: 0px solid; position: relative;" id="map_select_sb_left" dropzone="true" onclick="map_select_sb_left_onclick();" readonly="false" unique="true">
<div style="width: 100%; height: 0px;"></div>
</div>
<script>function map_select_sb_left_onclick() {
;
}
</script>
</td>
<td width="20%" align="center" style="vertical-align:middle;">
<table cellspacing="3" cellpadding="0" border="0" width="100%">
<tbody>
<tr id="map_select_sb_move_right_text">
<td align="center">Add</td>
</tr>
<tr id="map_select_sb_move_right_button">
<td align="center"><a class="btn btn-default icon-chevron-right" style="margin-top: 5px; width:32px; height:32px;" onclick="map_select_sb_moveLeftToRight();"><span class="sr-only">Add</span></a></td>
</tr>
</tbody>
</table>
</td>
<td width="40%" style="vertical-align:top; border:1px solid #999;" dropzone="true">
<div style="height: 200px; width: 100%; overflow: auto; border: 0px; position: relative;" id="map_select_sb_right" dropzone="true" onclick="map_select_sb_right_onclick();" readonly="false" unique="false">
<div id="map_select_sb_left_windowList_0" dragpart="map_select_sb_left_windowList_0" class="drag_section_part selected" style="position: relative; z-index: 1; left: 0px; top: 0px;">
<table role="presentation" id="window.map_select_sb_left_windowList_0" class="gwt_window_list_window" cellspacing="0" cellpadding="0" style="padding: 0px; width: 100%; height: 20px;">
<tbody>
<tr style="vertical-align: top;">
<td>
<table class="drag_section_header_active" role="presentation" style="width: 100%; cursor: move;">
<tbody>
<tr>
<td style="display: none; top: 0px; left: 0px; vertical-align: top; white-space: nowrap;"></td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr style="height: 100%; vertical-align: top; display: none;">
<td><span id="body_map_select_sb_left_windowList_0" class="widget_body" style="overflow: auto; font-weight: normal; padding: 0px; width: 100%;"></span></td>
</tr>
</tbody>
</table>
</div>
<div style="width: 100%; height: 0px;"></div>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
<div><button class="web" name="import_button" id="import_button" style="display:none;" type="submit" onclick="onSubmit();" classname="web">Transform</button><button class="btn btn-primary" name="import_button" id="import_button" type="submit" onclick="onSubmit();">Transform</button><span id="loading" name="loading" style="display: none"><img src="images/loading_anim2.gifx" alt="Transforming..."><strong>Transforming...</strong></span></div>
</div>
<div class="form-group is-required" id="importset" style="overflow:hidden;padding-top:20px;">
<label class="col-sm-2 control-label" for="import_set" style="text-align:right;"><span class="required-marker"></span>Import set</label>
<span class="col-sm-4">
<div class="select2-container form-control sn-select-basic required" id="s2id_import_set">
<a href="javascript:void(0)" class="select2-choice" tabindex="-1"> <span class="select2-chosen" id="select2-chosen-1">ISET000238110 - imp_sccm2012v2_computer_id (2018-08-04 17:54:53)</span><abbr class="select2-search-choice-close"></abbr> <span class="select2-arrow" role="presentation"><b role="presentation"></b></span></a><label for="s2id_autogen1" class="select2-offscreen">Import set</label><input class="select2-focusser select2-offscreen" type="text" aria-haspopup="true" role="button" aria-labelledby="select2-chosen-1" id="s2id_autogen1">
<div class="select2-drop select2-display-none select2-with-searchbox">
<div class="select2-search"> <label for="s2id_autogen1_search" class="select2-offscreen">Import set</label> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="select2-input" role="combobox" aria-expanded="true" aria-autocomplete="list" aria-owns="select2-results-1" id="s2id_autogen1_search" placeholder=""> </div>
<ul class="select2-results" role="listbox" id="select2-results-1"> </ul>
</div>
</div>
</span>
</div>
<div style="padding-top:20px;padding-bottom:20px;">
<table style="width:100%;">
<tbody>
<tr id="map_select">
<td>
<script language="JavaScript" src="scripts/classes/GwtWindowList.jsx?v=05-10-2018_1459"></script><script language="JavaScript" src="scripts/classes/GwtSelectTable.jsx?v=05-10-2018_1459"></script><script>function map_select_sb_populate(leftzone, rightzone) {
// do nothing, we are populating the zones manually
}
</script>
<table id="map_select_sb_tbl" border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td align="center">Available maps</td>
</tr>
<tr>
<td width="40%" style="vertical-align:top; border:1px solid #999;" dropzone="true">
<div style="height: 200px; width: 100%; overflow: auto; border: 0px solid; position: relative;" id="map_select_sb_left" dropzone="true" onclick="map_select_sb_left_onclick();" readonly="false" unique="true">
<div style="width: 100%; height: 0px;"></div>
</div>
<script>function map_select_sb_left_onclick() {
;
}
</script>
</td>
<td width="20%" align="center" style="vertical-align:middle;">
<table cellspacing="3" cellpadding="0" border="0" width="100%">
<tbody>
<tr id="map_select_sb_move_right_text">
<td align="center">Add</td>
</tr>
</tbody>
</table>
</td>
<td width="40%" style="vertical-align:top; border:1px solid #999;" dropzone="true">
<div style="height: 200px; width: 100%; overflow: auto; border: 0px; position: relative;" id="map_select_sb_right" dropzone="true" onclick="map_select_sb_right_onclick();" readonly="false" unique="false">
<div id="map_select_sb_left_windowList_0" dragpart="map_select_sb_left_windowList_0" class="drag_section_part selected" style="position: relative; z-index: 1; left: 0px; top: 0px;">
<table role="presentation" id="window.map_select_sb_left_windowList_0" class="gwt_window_list_window" cellspacing="0" cellpadding="0" style="padding: 0px; width: 100%; height: 20px;">
<tbody>
<tr style="vertical-align: top;">
<td>
<table class="drag_section_header_active" role="presentation" style="width: 100%; cursor: move;">
<tbody>
<tr>
<td style="display: none; top: 0px; left: 0px; vertical-align: top; white-space: nowrap;"></td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr style="height: 100%; vertical-align: top; display: none;">
<td><span id="body_map_select_sb_left_windowList_0" class="widget_body" style="overflow: auto; font-weight: normal; padding: 0px; width: 100%;"></span></td>
</tr>
</tbody>
</table>
</div>
<div style="width: 100%; height: 0px;"></div>
</div>
<script>function map_select_sb_right_onclick() {
;
}
</script>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
<div><button class="web" name="import_button" id="import_button" style="display:none;" type="submit" onclick="onSubmit();" classname="web">Transform</button><button class="btn btn-primary" name="import_button" id="import_button" type="submit" onclick="onSubmit();">Transform</button><span id="loading" name="loading" style="display: none"><img src="images/loading_anim2.gifx" alt="Transforming..."><strong>Transforming...</strong></span></div>
Upvotes: 0
Views: 1129
Reputation: 333
This link helped - WebDriverException: Message: TypeError: rect is undefined
There were two elements with the same xpath and id so i had to use the below code to click on the second one
import_btn = driver.find_elements(By.XPATH, '//*[@id="import_button"]')[1]
hov = ActionChains(driver).move_to_element(import_btn)
time.sleep(6)
hov.click()
hov.perform()
Upvotes: 2