我正在使用Selenium进行某些Web抓取,但是我无法让程序单击某个按钮。这是具体的错误消息:
selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素
我不确定出什么问题(我尝试了以下几种方法来尝试导航至以下按钮:
driver.find_element_by_name("HTML-NAME").click()
driver.find_element_by_class("HTML-CLASS").click()
driver.find_element_by_id("HTML-ID").click()
driver.find_element_by_xpath("//a[@id='HTML-ID']").click()
driver.find_element_by_link_text("HTML-LINK-TEXT").click()
这是我要单击的按钮的相应HTML代码:
< a name="HTML-NAME" id="HTML-ID" ptlinktgt="CODE"tabindex="30" onclick="javascript:cancelBubble(event);" href="javascript:submitAction....." class="HTML-CLASS">BTN-TEXT </a
# My code right now
driver = webdriver.Chrome(executable_path="path/chromedriver")
url = "https://...."
driver.get(url)
time.sleep(5)
input_bar1 = driver.find_element_by_xpath("//input[@id='inp1']")
input1 = input("Username: ")
input_bar1.send_keys(username)
input_bar2 = driver.find_element_by_xpath("//input[@id='inp2']")
input2 = input("Password: ")
input_bar2.send_keys(password)
input_bar2.submit()
time.sleep(5)
elem = driver.find_element_by_link_text("BTN-TEXT")
elem.click()
time.sleep(20)
答案 0 :(得分:0)
我建议您增加提交后的等待时间。 可能浏览器必须加载某些内容(提交之后),并且您试图在DOM中生成元素之前单击它。 (TIPP:wait(number)中的数字是以毫秒为单位的时间。因此,您等待5毫秒才能尝试单击BTN-TEXT元素。请尝试增加此数字。