selenium + python + htmlunit не может получить динамически загруженные элементы - PullRequest
0 голосов
/ 31 марта 2020

Я сканирую страницу с python + селеном. Я использую js для слайдов, чтобы загрузить динамически загружаемый контент (кнопка clickmore). В firefoxdriver все работает нормально, но кажется, что js не выполняется, когда я переключаюсь на htmlunitdriver, потому что я не могу получить динамически загружаемые элементы (эта кнопка). Я не знаю, что делать, пожалуйста, помогите мне

def isElementPresent(driver,strxpath):
    try:
        btn = driver.find_element_by_xpath(strxpath)
    except NoSuchElementException as e:
        print(strxpath+'did not show up')
        return False
    else:
        return True 

driver = webdriver.Remote("http://localhost:4444/wd/hub", desired_capabilities=webdriver.DesiredCapabilities.HTMLUNITWITHJS)
driver.get(targeturl) 
driver.execute_script('window.scrollBy(0,3000)')
time.sleep(1)
clickmorexpath = '//div[@class="repeat_list"]/div[2]/div[1]/div[1]/a[@action-type="click_more_comment"]'
try:
    if isElementPresent(driver,morexpath):
        morebtn = driver.find_element_by_xpath(morexpath)
        morebtn.click() 
    else:
        driver.execute_script('window.scrollBy(0,1000)')
        time.sleep(5) 
except: 
   print("Error: failed to click more")
...