I have one button, and I want to click on this button , I do
login_form = driver.find_element_by_xpath("/html/body/div/h1/div[1]").click();
my code :
driver = webdriver.Firefox()
driver.get('http://www.textdet.com/')
e = driver.find_element_by_id("imagefile")
e.send_keys("/home/brm17/Desktop/ProjetFinDetude/image.png")
login_form = driver.find_element_by_xpath("/html/body/div/h1/div[1]").click();
But I get:
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: /html/body/div/h1/div[1]
how to click on button Download bounding boxes
on python
by selenium
, the html
<h1 style="position: relative"><a href="/">Scene Text Detection Demos</a>
<div aria-label="..." role="group" class="btn-group" style="position: absolute; bottom: 10px; right: 0px;">
<!--<button id="toggle_text_propoals" type="button" class="btn btn-success btn-sm">Show text proposals</button>-->
<a href="download_bboxes/acdb4bb9-8b73-4020-bfe5-737316033e5e" type="button" class="btn btn-success btn-sm">Download bounding boxes</a>
</div>
</h1>
The button is in <a>
tag, not <div>
tag. You also have only one <div>
so div[1]
is invalid. You can search by the text
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
button = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//a[contains(., "Download bounding boxes")]')))
button.click();
Or by class since you have only one button so class btn
should be unique.
driver.find_element_by_class_name('btn').click(); # or 'btn-success' or 'btn-sm'
By the way, click()
doesn't return anything, you can't assign it to login_form
.
The button is under an <a>
tag so we write code for Xpath:
driver.find_element_by_xpath("//a[. = 'Download bounding boxes']").click()
so it finds the text is "Download bounding boxes" on the website and clicks on it. In the code above //
a is written because the button was inside the <a>
tag we can write //span
, //div
as well if the code was under a span
or div
tag.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.