Попробуйте приведенный ниже код. Это должно сработать.
driver = webdriver.Firefox()
driver.get('https://www.accuform.com/safety-sign/danger-danger-authorized-personnel-only-MADM006')
time.sleep(3)
driver.find_element_by_id('x-mark-icon').click()
material_dropdown = driver.find_element_by_xpath("//input[@class='select-dropdown']")
driver.execute_script("arguments[0].click();", material_dropdown)
#Code for material dropdown
materials=driver.find_elements_by_css_selector("div.select-wrapper ul.dropdown-content li")
material_optionsList = []
for material in materials:
material_ele=material.find_element_by_tag_name('span')
if material_ele.text!='':
material_optionsList.append(material_ele.text)
print(material_optionsList)
driver.execute_script("arguments[0].click();", material_dropdown)
size_dropdown = driver.find_element_by_xpath("(//input[@class='select-dropdown'])[2]")
driver.execute_script("arguments[0].click();", size_dropdown)
#Code for size dropdown
Sizes=driver.find_elements_by_css_selector("div.select-wrapper ul.dropdown-content li")
size_optionsList = []
for size in Sizes:
size_ele=size.find_element_by_tag_name('span')
if size_ele.text!='':
size_optionsList.append(size_ele.text)
driver.execute_script("arguments[0].click();", size_dropdown)
Вывод:
[u'Adhesive Vinyl', u'Plastic', u'Adhesive Dura-Vinyl', u'Aluminum', u'Dura-Plastic\u2122', u'Aluma-Lite\u2122', u'Dura-Fiberglass\u2122', u'Accu-Shield\u2122']
Надеюсь, вы сделаете все остальное. Дайте мне знать, работает ли он для вас.
РЕДАКТИРОВАТЬ Код для циклического прохождения и получения значения цены материалов.
for material in range(len(materials)):
material_ele=materials[material]
if material_ele.text!='':
#material_optionsList.append(material_ele.text)
#material_ele.click()
driver.execute_script("arguments[0].click();", material_ele)
time.sleep(2)
price = driver.find_element_by_id("priceDisplay")
print( price.text)
time.sleep(2)
material_dropdown = driver.find_element_by_xpath("//input[@class='select-dropdown']")
driver.execute_script("arguments[0].click();", material_dropdown)
materials = driver.find_elements_by_css_selector("div.select-wrapper ul.dropdown-content li")
material+=2
Вывод:
$8.31
$9.06
$13.22
$15.91
$15.91
Мос, мне интересно, разрешили ли вы эту проблему (поскольку у меня она также есть с VS2005 и VS2008 на 64-битной Win7)?
Изменить: В комментарии было предложено «Снять флажок Инструменты / Параметры / Отладка / Собственная / Включить отладку RPC», и, похоже, это ответ.
Получаете ли вы исключения в своем приложении или в самой Visual Studio?
Я бы начал с «Очистить» все решение, а затем снова «Построить». Иногда, если ваши двоичные файлы не синхронизированы, вы можете получить странное поведение при отладке.
Является ли ваше приложение многопоточным?
В случае, если это:
Вы уверены, что нарушение Access выдается потоком, который вы отлаживаете? Вы заморозили все остальные темы?
Если у вас есть вызовы функций в любом из окон наблюдения, удалите их.