【发布时间】:2017-03-31 08:17:34
【问题描述】:
我需要从site获得反馈
反馈在<iframe> 标签内,所以我转到iframe,然后我从第一页获得反馈,但随后我需要使用按钮更改页面:
Selenium 可以通过 class 或 xpath 找到它,但是当它尝试单击时返回错误
selenium.common.exceptions.WebDriverException: Message: unknown error: Element <iframe scrolling="no" frameborder="0" marginwidth="0" marginheight="0" width="100%" height="1943" src="//feedback.aliexpress.com/display/productEvaluation.htm?productId=1000003578539&ownerMemberId=825321852&companyId=&memberType=seller&startValidDate=" cd_frame_id_="9dbc34cc8793cee8fbcab5180296b0d6"></iframe> is not clickable at point (1001, 582). Other element would receive the click: <span data-role="show" class="show-history">...</span>
(Session info: chrome=56.0.2924.87)
(Driver info: chromedriver=2.28.455520 (cc17746adff54984afff480136733114c6b3704b),platform=Windows NT 6.1.7601 SP1 x86_64)
这是我的代码:
driver = webdriver.Chrome()
driver.get(url)
close_popup = driver.find_element_by_class_name('close-layer')
close_popup.click()
tab_feedback = driver.find_element_by_xpath('//*[@id="j-product-tabbed-pane"]/ul/li[2]')
tab_feedback.click()
driver.switch_to.frame(driver.find_element_by_xpath('//iframe[starts-with(@src, "//feedback.aliexpress.com/display/productEvaluation.htm")]'))
text_feedbacks = driver.find_elements_by_class_name('buyer-feedback')
next = driver.find_element_by_class_name('ui-pagination-next ui-goto-page')
next.click()
我认为可能是 selenium 太快了,我尝试等待并循环但仍然无法获得下一页的反馈。我也尝试使用 xpath 获取此元素:
next = driver.find_element_by_xpath( "//div[@class='ui-pagination-navi util-left']/a[@class='ui-goto-page']")
但没有任何帮助。
如何使用 selenium 获得下一页的反馈?为什么其他元素收到点击?
【问题讨论】:
标签: python selenium iframe xpath