I am working with Selenium and Python. I am struggling to use the click()
method in order to click a dynamically created radio button. The markup for the radio is below.
<input version="2" value="1" class="linked-ftb-radio meta(controlNumber=2)" id="radio_1" name="IndexString" reference="TEST 01" type="radio">
<label for="radio_1" id="linked-label" class="radio-label"></label>
The code I have is:
driver.find_element_by_xpath('//*[@id="radio_1"]').click()
However the following error is produced:
Traceback (most recent call last):
File "index.py", line 41, in <module>
driver.find_element_by_xpath('//*[@id="radio_1"]').click()
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/selenium/webdriver/remote/webelement.py", line 74, in click
self._execute(Command.CLICK_ELEMENT)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/selenium/webdriver/remote/webelement.py", line 457, in _execute
return self._parent.execute(command, params)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/selenium/webdriver/remote/webdriver.py", line 233, in execute
self.error_handler.check_response(response)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotVisibleException: Message: Element is not currently visible and so may not be interacted with
The radio appears to be simulated by changing the image when the label is pressed. In other words, when clicked the class changes to radio-label selected
.
How can I click on the radio button with Selenium, bearing in mind it is not currently visible?