Javascript Selenium python滑块bouton元素不可见异常

Javascript Selenium python滑块bouton元素不可见异常,javascript,python,selenium,selenium-webdriver,web-scraping,Javascript,Python,Selenium,Selenium Webdriver,Web Scraping,我正试图写一个解析器来点击网站上的一个按钮,但我不能点击其中的两个按钮 我想点击“Elija el imports a financiar”和“Elija la mensualidad” 以下是html: python代码: from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_co

我正试图写一个解析器来点击网站上的一个按钮,但我不能点击其中的两个按钮

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

以下是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

我可以看出您的Xpath是正确的。但它不可交互。 请尝试actionchain,它应该可以工作。当您在chrome选项下面添加此选项时,代码将与headless一起工作

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()

通过这种方式,更改所有4个滑动按钮单击选项。让我知道这是否有效。

导入睡眠并在单击之间设置时间。睡眠(1),并检查其是否仍然存在相同的问题,如果没有帮助,请在开始使用元素之前滚动到网站的按钮(也在driver.get()之后放置wait,好的,谢谢:)当我尝试时,没有错。但是金额没有变化。我已经更新了答案。这肯定有效。没有错误,但金额没有变化。奇怪。在我的笔记本电脑上它正在更改。你能延迟一下并删除无头选项进行测试吗?对我来说,在3次单击同一按钮后,它显示12.075。很抱歉,无头没有更改。让我检查一下有什么问题。它在无头情况下工作。