如何在网页中找到按钮的路径

How to find the path of a button in a web page

我正在抓取此页面:

http://www.bbb.org/atlanta/business-reviews/heating-and-air-conditioning/cool-flame-heating-and-air-in-powder-springs-ga-1009/customer-reviews?cacheit=y

并且需要按下按钮才能看到评论。

用chrome我得到这条路

//*[@id="myspanpos"]

但是当我尝试使用代金券时:

NEXT_BUTTON_XPATH = '//*[@id="myspanpos"]'
button = browser.find_element_by_xpath(NEXT_BUTTON_XPATH)
button.click()

得到:

 Unable to locate element: {"method":"xpath","selector":"//button[text()=\"myspanpos\"]"}

我使用了 Selenium IDE,ID 为 id=customer-reviews,CSS 路径为 css=#customer-reviews,xpath 为 //a[contains(text(),'customer reviews')]。我 运行 我的 Selenium IDE 脚本点击客户评论就可以了。

要打开 "Reviews" 下拉菜单 window,您需要单击锚标记元素 (<a>),而不是 <span>。所以使用

browser.find_element_by_id('close_open').click()

发现2个问题:

  1. 给定 xpath 包含 {"}。这不是有效的 xpath。您应该使用 //*[@id='myspanpos'] xpath。

  2. 客户评论”按钮已被选中。所以如果你点击 link/button 它将重定向到同一页面。所以你需要在点击 link/button.

  3. 之后进行下一步

注意:尝试使用 wait/sleep 执行以获得更大的影响。示例

NEXT_BUTTON_XPATH = '//*[@id='myspanpos']'
button = browser.find_element_by_xpath(NEXT_BUTTON_XPATH)
button.click()
#Your wait or sleep statment