如何使用Selenium和python与特定于位置的弹出窗口进行交互

时间:2018-11-12 00:00:06

标签: python html css selenium web-scraping

我正在尝试用硒制造刮板,以从https://www.hannaford.com/home.jsp中提取价格和营养数据用于学校项目。困难在于定价数据是特定于商店的。为了解决这个问题,我已经使用硒在网站上输入用户的邮政编码。然后,将打开一个弹出窗口,其中包含最近的五个商店。该程序需要从这些位置选择一家商店。

我已经复制了选择第一个商店的按钮的x路径并将其设置为被单击,但是硒仍然不会继续通过弹出窗口。

这是我的代码:

hannaford = 
"https://www.hannaford.com/home.jsp"
    #opens website
    driver.get(hannaford)  

    driver.find_element_by_xpath("""//*[@id="node01"]/a""").click()
    driver.find_element_by_xpath("""//*[@id="pageContentWrapperInner"]/div[2]/div/div[1]/p[2]/a""").click()

    inputElement = driver.find_element_by_xpath("""//*[@id="cityStateZipLayer"]""")
    inputElement.send_keys(zip)
    inputElement.send_keys(Keys.ENTER)

    #attempt to select store in popup
    driver.find_element_by_xpath("""//*[@id="glo-store-results-layer-store-list"]/div[1]/span/form/a""").click()

这是与我要单击的链接关联的html:

<span class="fr rightSide">
                    <form class="fr" action="/custserv/save_user_store.cmd" method="post" name="selectThisStoreForm"><input type="hidden" name="form_state" value="selectThisStoreForm"><input name="storeId" type="hidden" value="21185" autofillparam="ON"><a href="" onclick="javascript:saveUserStoreNoClose('21185');return false;" class="altLink">
                           <input class="shopNow" type="image" autofillparam="ON" src="/assets/hf/assets/images/buttons/btn_shopNow.gif" border="0" alt="Shop Now"></a>
                    </form></span>

我该如何解决此问题。甚至可以在硒中选择像这样的动态元素吗?

0 个答案:

没有答案