选择一个按钮,列表对象没有属性点击python selenium

时间:2017-02-14 01:03:38

标签: python python-2.7 selenium

在搜索了我的问题的答案后,我无法得到帮助我的答案,所以我在这里寻求你的帮助! :)

现在,我正在尝试在网站页面上选择一个计划,在选择之后(阅读:单击某个按钮)显示页面的其余部分,我可以在其中发送我想要的键/值发送。

以下是我正在使用的代码

select_plan = browser.find_elements_by_xpath(".//*[@id='PostAdMainForm']/div[1]/div/div/div/div/div[1]/div[3]/button")
select_plan.click()

我在Firepath中找到了xpath,但是当我运行我的代码时,它给了我一个AttributeError:' list'对象没有属性'点击'

这是我试图点击的页面

https://www.kijiji.ca/p-post-ad.html?categoryId=214&hpGalleryAddOn=false&postAs=ownr

(我希望点击左键,蓝色按钮)

非常感谢你的帮助:)。

2 个答案:

答案 0 :(得分:1)

方法find_element s 会返回列表,而不是单个元素。您正在获取结果并尝试单击它。如错误所示,您无法点击列表。

使用find_element(单数)或使用find_elements(复数),然后点击返回的其中一个元素。

# using find_elements
select_plans = browser.find_elements_by_xpath(".//*[@id='PostAdMainForm']/div[1]/div/div/div/div/div[1]/div[3]/button")
if len(select_plans) > 0:
    select_plans[0].click()

# using find_element
select_plan = browser.find_element_by_xpath(".//*[@id='PostAdMainForm']/div[1]/div/div/div/div/div[1]/div[3]/button")
if select_plan:
    select_plan.click()

答案 1 :(得分:0)

但是,您分享的页面的链接没有蓝色按钮。但是,在导航到“发布您的广告”后,我找到了它。页。您可以使用前面显示的文字点击蓝色的选择按钮。例如,使用文字基本,您可以访问选择按钮。以下代码显示了我们如何实现这一目标:

select_plan = browser.find_element_by_xpath("//h3[text()='Basic']/following::button[text()='Select'][1]")
select_plan.click()

请告诉我,它是否适合您。