Selenium Python - Clicking an image link got error: Message: element not visible
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I am trying to stimulate the onclick event for login and below is the html sample
<div id="divAccInfoDefaultLoginButton" style="display:inline">
<a href="#" onclick="OnClickLogin();return false;"
onmouseout="if ( !isInSSOChecking() && !isInEKBA() && EnableAccInfo() ) { loadMouseEventImage('pic_login', 'pic_login'); }"
onmouseover="if ( !isInSSOChecking() && !isInEKBA() && EnableAccInfo() ) { loadMouseEventImage('pic_login', 'pic_login_on'); }">
<img id="pic_login" border="0" src="./images/btn_login_ch.gif?cv=L3.01R2" title="登入">
</a>
</div>
I try to click both href or the image but both failed as selenium.common.exceptions.ElementNotVisibleException: Message: element not visible
href = driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a")
href.click()
img= driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a//img")
img.click()
What is the correct way to stimulate the click action to trigger the onclick event?
python selenium xpath css-selectors webdriverwait
add a comment |
I am trying to stimulate the onclick event for login and below is the html sample
<div id="divAccInfoDefaultLoginButton" style="display:inline">
<a href="#" onclick="OnClickLogin();return false;"
onmouseout="if ( !isInSSOChecking() && !isInEKBA() && EnableAccInfo() ) { loadMouseEventImage('pic_login', 'pic_login'); }"
onmouseover="if ( !isInSSOChecking() && !isInEKBA() && EnableAccInfo() ) { loadMouseEventImage('pic_login', 'pic_login_on'); }">
<img id="pic_login" border="0" src="./images/btn_login_ch.gif?cv=L3.01R2" title="登入">
</a>
</div>
I try to click both href or the image but both failed as selenium.common.exceptions.ElementNotVisibleException: Message: element not visible
href = driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a")
href.click()
img= driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a//img")
img.click()
What is the correct way to stimulate the click action to trigger the onclick event?
python selenium xpath css-selectors webdriverwait
add a comment |
I am trying to stimulate the onclick event for login and below is the html sample
<div id="divAccInfoDefaultLoginButton" style="display:inline">
<a href="#" onclick="OnClickLogin();return false;"
onmouseout="if ( !isInSSOChecking() && !isInEKBA() && EnableAccInfo() ) { loadMouseEventImage('pic_login', 'pic_login'); }"
onmouseover="if ( !isInSSOChecking() && !isInEKBA() && EnableAccInfo() ) { loadMouseEventImage('pic_login', 'pic_login_on'); }">
<img id="pic_login" border="0" src="./images/btn_login_ch.gif?cv=L3.01R2" title="登入">
</a>
</div>
I try to click both href or the image but both failed as selenium.common.exceptions.ElementNotVisibleException: Message: element not visible
href = driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a")
href.click()
img= driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a//img")
img.click()
What is the correct way to stimulate the click action to trigger the onclick event?
python selenium xpath css-selectors webdriverwait
I am trying to stimulate the onclick event for login and below is the html sample
<div id="divAccInfoDefaultLoginButton" style="display:inline">
<a href="#" onclick="OnClickLogin();return false;"
onmouseout="if ( !isInSSOChecking() && !isInEKBA() && EnableAccInfo() ) { loadMouseEventImage('pic_login', 'pic_login'); }"
onmouseover="if ( !isInSSOChecking() && !isInEKBA() && EnableAccInfo() ) { loadMouseEventImage('pic_login', 'pic_login_on'); }">
<img id="pic_login" border="0" src="./images/btn_login_ch.gif?cv=L3.01R2" title="登入">
</a>
</div>
I try to click both href or the image but both failed as selenium.common.exceptions.ElementNotVisibleException: Message: element not visible
href = driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a")
href.click()
img= driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a//img")
img.click()
What is the correct way to stimulate the click action to trigger the onclick event?
python selenium xpath css-selectors webdriverwait
python selenium xpath css-selectors webdriverwait
edited Nov 19 '18 at 10:55
DebanjanB
48k144892
48k144892
asked Nov 17 '18 at 6:36
Charlie SiuCharlie Siu
598
598
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
add WebDriverWait()
also you need to switch to iframe
loginFrame = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "betSlipFrame")))
driver.switch_to.frame(loginFrame)
# Login box visible click it
href = driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a")
href.click()
add a comment |
To click on the element with title as 登入 you need to induce WebDriverWait for the desired element to be clickable and you can use either of the following solutions:
CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div#divAccInfoDefaultLoginButton>a[onclick*='OnClickLogin']>img#pic_login"))).click()
XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='divAccInfoDefaultLoginButton']/a[contains(@onclick,'OnClickLogin')]/img[@id='pic_login']"))).click()
Note : You have to add the following imports :
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53348871%2fselenium-python-clicking-an-image-link-got-error-message-element-not-visible%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
add WebDriverWait()
also you need to switch to iframe
loginFrame = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "betSlipFrame")))
driver.switch_to.frame(loginFrame)
# Login box visible click it
href = driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a")
href.click()
add a comment |
add WebDriverWait()
also you need to switch to iframe
loginFrame = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "betSlipFrame")))
driver.switch_to.frame(loginFrame)
# Login box visible click it
href = driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a")
href.click()
add a comment |
add WebDriverWait()
also you need to switch to iframe
loginFrame = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "betSlipFrame")))
driver.switch_to.frame(loginFrame)
# Login box visible click it
href = driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a")
href.click()
add WebDriverWait()
also you need to switch to iframe
loginFrame = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "betSlipFrame")))
driver.switch_to.frame(loginFrame)
# Login box visible click it
href = driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a")
href.click()
edited Nov 17 '18 at 7:12
answered Nov 17 '18 at 6:46
ewwinkewwink
12.3k22441
12.3k22441
add a comment |
add a comment |
To click on the element with title as 登入 you need to induce WebDriverWait for the desired element to be clickable and you can use either of the following solutions:
CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div#divAccInfoDefaultLoginButton>a[onclick*='OnClickLogin']>img#pic_login"))).click()
XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='divAccInfoDefaultLoginButton']/a[contains(@onclick,'OnClickLogin')]/img[@id='pic_login']"))).click()
Note : You have to add the following imports :
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
add a comment |
To click on the element with title as 登入 you need to induce WebDriverWait for the desired element to be clickable and you can use either of the following solutions:
CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div#divAccInfoDefaultLoginButton>a[onclick*='OnClickLogin']>img#pic_login"))).click()
XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='divAccInfoDefaultLoginButton']/a[contains(@onclick,'OnClickLogin')]/img[@id='pic_login']"))).click()
Note : You have to add the following imports :
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
add a comment |
To click on the element with title as 登入 you need to induce WebDriverWait for the desired element to be clickable and you can use either of the following solutions:
CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div#divAccInfoDefaultLoginButton>a[onclick*='OnClickLogin']>img#pic_login"))).click()
XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='divAccInfoDefaultLoginButton']/a[contains(@onclick,'OnClickLogin')]/img[@id='pic_login']"))).click()
Note : You have to add the following imports :
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
To click on the element with title as 登入 you need to induce WebDriverWait for the desired element to be clickable and you can use either of the following solutions:
CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div#divAccInfoDefaultLoginButton>a[onclick*='OnClickLogin']>img#pic_login"))).click()
XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='divAccInfoDefaultLoginButton']/a[contains(@onclick,'OnClickLogin')]/img[@id='pic_login']"))).click()
Note : You have to add the following imports :
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
answered Nov 19 '18 at 10:56
DebanjanBDebanjanB
48k144892
48k144892
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53348871%2fselenium-python-clicking-an-image-link-got-error-message-element-not-visible%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown