Selenium Python滑块bouton元素不可见异常

时间:2019-02-13 14:11:03

标签: javascript python selenium selenium-webdriver web-scraping

我试图写一个解析器以单击网站上的一个按钮,但我不能单击其中两个按钮。

我想点击“ Elija el imports a financiar”和“ Elija la mensualidad”

以下是html:https://www.cofidis.es/es/creditos-prestamos/prestamo-personal.html

python代码:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--start-maximized')
webdriver = webdriver.Chrome('chromedriver',chrome_options=chrome_options)
url = "https://www.cofidis.es/es/creditos-prestamos/prestamo-personal.html"

webdriver.get(url)
targetSliderStep = 6.000
targetSliderStep = round(targetSliderStep  * 2) / 2  # to ensure is units covered by clicking
print('target: ' + "{0:.3f}".format(targetSliderStep))
webdriver.find_element_by_xpath('//*[@id="btncerrar"]').click()
actualSliderStep = float(webdriver.find_element_by_id('I2:simuPanel.O').text.replace(' €',''))
print(actualSliderStep)
webdriver.find_element_by_xpath('//*[@id="I2:simuPanel.mensMoreId"]').click()
webdriver.find_element_by_xpath('//*[@id="I2:simuPanel.mensLessId"]').click()
print(actualSliderStep)

webdriver.find_element_by_xpath('//*[@id="I2:simuPanel.mensMoreId"]').click()
webdriver.find_element_by_xpath('//*[@id="I2:simuPanel.mensLessId"]').click()

print(webdriver.find_element_by_id('I2:simuPanel.O7').text)
webdriver.find_element_by_xpath('//*[@id="I2:simuPanel.durMoreId"]').click()
webdriver.find_element_by_xpath('//*[@id="I2:simuPanel.durLessId"]').click()
print(webdriver.find_element_by_id('I2:simuPanel.O7').text)

我收到此错误。

ElementNotVisibleException: Message: element not interactable

1 个答案:

答案 0 :(得分:0)

我可以看到您的Xpath是正确的,但是它不能交互。 请尝试应该起作用的动作链。当您在chrome选项下添加此代码时,代码也可以正常运行。

chrome_options.add_argument('window-size=2560x1440')

代替这个

webdriver.find_element_by_xpath('//*[@id="I2:simuPanel.mensMoreId"]').click()

请尝试

 el=webdriver.find_element_by_xpath('//*[@id="I2:simuPanel.amountMoreId"]')
   ActionChains(webdriver).move_to_element(el).click(el).perform()

以这种方式更改所有四个滑动按钮的单击选项。让我知道是否可行。