Selenium 不会点击按钮
我正在尝试从这个网页上抓取数据... "http://agmarknet.nic.in/mark2_new.asp"
我需要在商品搜索框里输入“香蕉”,然后点击“开始”按钮。
在Stack Overflow的帮助下,我能够打开Firefox,输入“香蕉”...但是“开始”按钮(根据检查,它叫Go3)就是不响应!!
我试过用element.click(),也试过ActionChains,还试过把鼠标移动到这个按钮上,我确认它是可以用的。就是不跳转到下一个搜索页面。
另一个搜索按钮(B1...是个通用搜索)好像能用...但是当selenium点击它时,打开的页面和我手动点击时的页面不一样...这也很奇怪。
我没有收到任何错误信息...就是不跳转到下一个页面。
谢谢你们的任何帮助。这让我快要疯了!
def SLEEP(num):
for i in range(0,num,1):
print ".",
time.sleep(1)
def click_button(driver, button_name):
assert driver.find_element_by_name(button_name)
button = driver.find_element_by_name(button_name)
if button.is_enabled():
print "it is enabled"
else:
print "IT IS NOT ENABLED"
# Try with element
button.click()
#Try with action chain
action = ActionChains(driver)
action.move_to_element(driver.find_element_by_name(button_name))
action.click(driver.find_element_by_name(button_name))
action.perform()
# WORKS
driver = webdriver.Firefox()
driver.get("http://agmarknet.nic.in/mark2_new.asp")
SLEEP(5)
assert "AG" in driver.title
print driver.title
# WORKS
textinput = driver.find_element_by_name('cmm')
textinput.send_keys("banana")
SLEEP(5)
# SORT OF WORKS (brings up unexpected page)
button_name = "B1"
click_button(driver, button_name)
# DOES NOT WORK
button_name = "Go3"
click_button(driver, button_name)
1 个回答
2
button.click()
对我来说是有效的。注意,你不需要在操作之间加上 time.sleep
。
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://agmarknet.nic.in/mark2_new.asp")
textinput = driver.find_element_by_name('cmm')
textinput.send_keys("banana")
button_name = "Go3"
button = driver.find_element_by_name(button_name)
button.click()
另外,你也可以用空格键代替 click()
。
from selenium.webdriver.common.keys import Keys
...
button.send_keys(Keys.SPACE)
希望这对你有帮助。