2017-02-16 6 views
-1

Я использую selenium 3.0.2 и PhantomJS, чтобы очистить некоторые значения AJAX от одного конкретного сайта. Я нахожусь на Python 2.7, OS X 10.8.PhantomJS и Selenium: иногда это работает, иногда это не так

У меня были периоды, когда PhantomJS работает нормально, и внезапно из-синего он не может найти html, который я ищу, хотя он присутствует, и я не сделал сменил код. Является ли PhantomJS склонным к ведению себя неустойчиво, и есть ли другая альтернатива без головного убора, более стабильная, которая работает с моей настройкой? Я не могу заставить chromedriver работать.

EDIT: Я использую

driver.get()  
time.sleep(5) #I have played with this value 
wait = WebDriverWait(driver, 10) #also played with this value up to 60... 
try: 
    table = wait.until(EC.visibility_of_element_located((By.CLASS_NAME, "bla bla"))) 

Спасибо, ребята!

ответ

1

Вы не представили никаких подробностей, но я предполагаю, что это связано с временем загрузки страницы, попробуйте использовать Explicit Waits Explicit Waits. Он будет ждать, пока ваш Div будет полностью загружен, и вы сможете выполнять другие действия на странице.

+0

Я на самом деле использую Explicit Waits, и он держит тайм-аут независимо от того, что я установил. Тот же сайт отлично работает с Firefox, и у меня даже есть 'time.sleep()' после 'driver.get()'. Я боролся с этим в течение нескольких недель, и поскольку я ноб, я немного ограничен в понимании всего технического жаргона при исследовании возможных проблем. Спасибо, tho! – user2822564

+0

Вот несколько вещей, которые вы можете сделать для отладки, если один и тот же сайт/код работает с firefox .. # Попробуйте использовать последнюю версию phantomJs # Когда исключение произойдет, сделайте снимок экрана с помощью driver.save_screenshoot и проверьте экранная съемка для этой области макета. –

+0

был новый, не работал, теперь я загрузил готовый, установил драйвер для 'driver = webdriver.PhantomJS (executable_path = '/ usr/local/lib/node_modules/phantomjs/bin/phantomjs', service_args = [' --ignore-ssl-errors = true ',' -ssl-protocol = TLSv1 '], service_log_path ='/tmp/ghostdriver.log ') ', но ничего не происходит. Нет ошибки, нет вывода, но аргумент 'print' после того, как вы вызываете' driver'never. – user2822564

Смежные вопросы