javascript - Python selenium-单击 javascript 链接不会加载新页面但会显示 url

标签 javascript python python-3.x selenium xpath

我是 Python 的新手,第一次使用 selenium。 我需要什么:

  1. 打开http://www.kegg.jp/kegg-bin/get_htext?ban00001.keg
  2. 单击顶部的第 4 个向下箭头 the one next to the check-box named "one-click mode"
  3. 获取该页面的 html 源代码

我尝试了什么:我尝试使用 selenium 单击按钮,它重新加载了同一页面,即使 url 显示了下一页。 我的代码:

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 个大学学分,因此我的项目严重落后!

最佳答案

首先,有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()

关于javascript - Python selenium-单击 javascript 链接不会加载新页面但会显示 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33975305/

相关文章:

python - 使用相似度函数对 scikit-learn 进行聚类

python - 为什么 NaN 被视为 float ?

python-3.x - 计算网页内的单词

javascript - 从 Reactjs 中的函数内部调用组件函数

Javascript 模块导入失败 - 为什么?

javascript - 如何从 JavaScript 中的链接中提取文本?

python - GAE - 如何组合多个异步 url 获取的结果?

javascript - 在 SVG 中选择坐标处的元素

python - 在 scrapy 中返回第一个遇到的结果

python - 在 Python3 中从 bash 读取输入