我正在尝试用硒制造刮板,以从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>
我该如何解决此问题。甚至可以在硒中选择像这样的动态元素吗?