2014-02-23 49 views
0

场景:硒蟒蛇如何关闭弹出窗口?

  • 点击登录链接顶部的导航栏。
  • 这将打开一个覆盖形式(弹出)
  • 我填写电子邮件ID,然后选择单选按钮(新客户)
  • 点击提交
  • 新的覆盖形式(弹出打开)
  • 我输入所有信息(名字,姓氏等)并点击提交
  • 叠加(弹出窗体)打开显示一条感谢信息。

问题: - 我想点击这个弹出窗口右上角的'X'来关闭它。

曾尝试以下 的Xpath:

browser.find_elements_by_xpath('html/body/div[7]/div[1]/a/span').click() 

这给了错误

Traceback (most recent call last): 
File "C:\Python27\Off5th_Registration", line 25, in <module> 
browser.find_elements_by_xpath('html/body/div[7]/div[1]/a/span').click() 
AttributeError: 'list' object has no attribute 'click' 

类名试图

browser.find_element_by_class_name('ui-dialog-titlebar-close ui-corner-all').click() 

这给了错误

Traceback (most recent call last): 
File "C:\Python27\Off5th_Registration", line 25, in <module> 
browser.find_element_by_class_name('ui-dialog-titlebar-close ui-corner-all').click() 
File "C:\Python27\lib\selenium\webdriver\remote\webdriver.py", line 341, in find_element_by_class_name 
return self.find_element(by=By.CLASS_NAME, value=name) 
File "C:\Python27\lib\selenium\webdriver\remote\webdriver.py", line 681, in find_element 
{'using': by, 'value': value})['value'] 

请帮助!

+0

添加网页中的HTML:-div类= “UI-对话框的标题栏UI的小部件头UI刀尖所有UI辅助-clearfix”> user3337644

回答

0

首先,您使用的是find_elements_by_xpath,这是返回给您一个元素列表,您应该使用find_element_by_xpath(注意非复数)。其次,我不确定你的xpath是否正确,虽然我不确定,但是我从某个地方记得你必须使用完整的xpath(以/或/开头)。所以在你的情况下,这将是'//html/body/div[7]/div[1]/a/span'

第三,不支持复合类名称,在webdriver上下文中,这意味着如果您的类名称中有空格,则不能选择by_class_name。

无论如何,尝试以下操作:

browser.find_element_by_xpath('//a[@class=\"ui-dialog-titlebar-close ui-corner-all\"]').click() 

编辑回答您的评论: 也许你到达那里得太快?尝试:

from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 

    element = WebDriverWait(driver, 60).until(EC.visibility_of_element_located((By.XPath, '//a[@class=\"ui-dialog-titlebar-close ui-corner-all\"]'))) 

Check here.

+0

谢谢Erki。仍然出现错误。看起来它不能识别它。 saksoff5th.com是我正在尝试的网站。请参阅以下错误。回传(最近呼叫的最后一个): 文件“C:\ Python27 \ Off5th_Registration”,第26行,在 browser.find_element_by_xpath(“// * [@ id ='dwfrm_login_username_d0wweltullmw']”)。点击() find_element_by_xpath中的第221行文件“C:\ Python27 \ lib \ selenium \ webdriver \ remote \ webdriver.py” 返回self.find_element(by = By.XPATH,value = xpath) – user3337644

+0

我编辑了回答 –