单击对话框中的可见关闭按钮

时间:2014-02-26 21:58:53

标签: python selenium selenium-webdriver

手头有潜在的问题。我有一个成功注册后出现的重叠表单。我也试过X路径,但这没有帮助(如识别它)。

现在我正在尝试让一个类识别(完整的覆盖表单),然后单击表单上的“X”链接。然而问题是复合类。

这是识别叠加形式的完整类:

ui-dialog ui-widget ui-widget-content ui-corner-all registerModel-main-dialog ui-draggable signup_thanks

这是“X”链接的类:

ui-icon ui-icon-closethick

网站为http://www.saksoff5th.com/

1 个答案:

答案 0 :(得分:1)

鉴于您的网站是http://saksoff5th.com,我可以为您提供工作代码。

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

driver = webdriver.Firefox()
driver.get("http://www.saksoff5th.com/")

driver.implicitly_wait(10) # seconds

driver.find_element_by_css_selector(".sign-in > span").click()
driver.find_element_by_css_selector(".ui-dialog[style*='display: block'] .ui-icon-closethick").click()

# If you prefer explicit wait, you can do these
# WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_css_selector(".sign-in > span")).click()
# WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_css_selector(".ui-dialog[style*='display: block'] .ui-icon-closethick")).click()

由于您尚未提供代码,我猜您的代码可能存在两个问题:

  • 您没有使用在点击之前需要的WebDriverWait,因为您的元素不能立即使用。
  • 还有另外两个具有相同类名的对话框,您需要找到可见的对话框。

如果您对答案感到满意,请接受this。否则提供以下反馈。