我是Python的新手并且是第一次使用selenium。 我需要的是:
我尝试了什么:我尝试使用selenium单击按钮,即使网址显示下一页,它也会重新加载相同的页面。 我的代码:
driver.get("http//www.kegg.jp/kegg-bin/get_htext?ban00001.keg")
mouse = webdriver.ActionChains(driver) elem=driver.find_element_by_xpath("//img[@src='/Fig/get_htext/open.png']")
mouse.move_to_element(elem)
driver.implicitly_wait("5")
mouse.click().perform()
我还试图避免点击并直接填写按钮提交的表单,但似乎我填写了错误的xpath,因为找不到元素。
elem=driver.find_element_by_xpath("/body/form/input[@name='htext']").send_keys('ban00001.keg')
有人可以告诉我为什么点击不起作用,我的xpath是怎么回事?但主要是,如何实现打开页面的目标。请帮忙。这值得10个大学学分,因此我在我的项目上非常落后!
答案 0 :(得分:1)
首先,有4个几乎相同的箭头。由于你需要第4个,我会使用alt
属性来区分箭头:
driver.find_element_by_xpath("//img[@alt='4th Level']")
单击箭头时,页面加载需要一些时间 - 您需要等待它。我等待主页面网格通过visibility_of_element_located
预期条件变为可见。
完整的工作代码:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
driver = webdriver.Chrome()
driver.get("http://www.kegg.jp/kegg-bin/get_htext?ban00001.keg")
# locating the 4th arrow
arrow4 = driver.find_element_by_xpath("//img[@alt='4th Level']")
arrow4.click()
# wait for the grid to become visible
wait = WebDriverWait(driver, 10)
wait.until(expected_conditions.visibility_of_element_located((By.ID, "grid")))
print(driver.page_source)
driver.quit()