查找并单击脚本元素内的元素

时间:2019-06-19 21:54:37

标签: python selenium

我正在尝试使用python和selenium更改网站上的商店位置。 Firefox的Selenium IDE插件给了我一个序列。该序列可在Firefox的Selenium IDE中运行,但无法在Python(Spyder)中运行。我要单击的元素在脚本内部,没有工具可以在脚本内找到元素。 Beautifulsoup做不到,硒也做不到。 使用以下代码,我尝试获取每个商店的产品价格,因此我需要将商店(即左上角的黄色按钮,然后是下拉列表)从下拉列表中更改为每个商店,然后抓取页面源产品价格。但是每当我尝试“ driver.find_element_by_”时,我都会得到“无法找到元素:”

单击顺序是使用Firefox的Selenium IDE插件记录的。 或者,也许有比硒更快的方法可以在商店之间切换并获得产品价格。我不能只用Beautifulsoup做到这一点。

from selenium import webdriver
driver = webdriver.Firefox(executable_path='d:\Work\geckodriver.exe')
url = 'https://www.castorama.pl/deska-14x90x540-eslov-jodel-1-94-id-1105153.html'
driver.get(url)
driver.maximize_window()
driver.find_element_by_id("market-name").click() #Unable to locate element
driver.find_element_by_id("shop-selection-master-infostore").click()
driver.find_element_by_xpath("//div[@id='geolocation_popup_select_market_chosen']/a/span").click()
driver.find_element_by_xpath("//div[@id='geolocation_popup_select_market_chosen']/div/ul/li[2]").click()

1 个答案:

答案 0 :(得分:0)

关闭Cookie栏:

from selenium import webdriver

driver = webdriver.Firefox(executable_path='d:\Work\geckodriver.exe')
url = 'https://www.castorama.pl/deska-14x90x540-eslov-jodel-1-94-id-1105153.html'
driver.get(url)
driver.maximize_window()
driver.find_element_by_css_selector('[onclick="bold.cookie.closeCookie();"]').click()
driver.find_element_by_id('shop-selection-master').click()

纯粹主义者不喜欢它,但您也可以使用javascript

driver.execute_script("document.querySelector('#shop-selection-master').click();")

选择选项的详细介绍如下:Selenium - Python - drop-down menu option value

您具有父级select的ID:geolocation-popup-select-market