2017-01-05 1 views
0

Je dois capturer la capture d'écran de la page Web de vapeur, qui contient l'erreur d'offre commerciale, mais pour cette action je dois être autorisé et je ne sais pas quel en-tête envoie au serveur. Je suis en train de le faire avec webshot gem, remplir mes lettres de créance avec capybara, mais cela ne fonctionne pas et il capture la page de connexionCapture d'écran de la page Steam avec Ruby

ws.start_session do 
    visit 'https://store.steampowered.com/login/' 
    within(:css, 'form[name="logon"]') do 
    fill_in 'username', {:id => 'input_username', :with => 'test'} 
    fill_in 'password', {:id => 'input_password', :with => 'password'} 
    end 
    click_button('Sign in', exact: true) 
end.capture 'https://store.steampowered.com/account', 'example.png', width: 500, height: 500, quality: 85 
+1

_ "ceci ne fonctionne pas" _ ne nous dit absolument rien. Qu'est-ce qui ne fonctionne pas exactement? Envoyez des extraits de code du code incriminé afin que nous puissions voir quelle approche vous avez adoptée et pourquoi cela pourrait ne pas fonctionner. – Takarii

+0

a ajouté un exemple de code à question, ne fonctionne pas = faire une capture d'écran de la page mais je ne suis pas connecté (capture d'écran de la page de connexion) –

+0

Oui, je comprends que "ne fonctionne pas" signifie que vous n'obtenez pas le résultat désiré. Mais étant donné que le paquet fonctionne, cela signifie que votre mise en œuvre ne fonctionne pas. C'est la partie que vous devez montrer. – Takarii

Répondre

1

Votre erreur est probablement survient parce que votre code n'attend pas la connexion pour réussir avant de passer à la page du compte, la demande de la page du compte ne contient pas le bon ensemble de cookies et est redirigée vers la page de connexion. Vous devez effectuer une sorte de vérification pour vous assurer que la connexion est terminée. Quelque chose comme

ws.start_session do 
    visit 'https://store.steampowered.com/login/' 
    within(:css, 'form[name="logon"]') do 
    fill_in 'input_username', with: 'test' 
    fill_in 'input_password', with: 'password' 
    end 
    click_button('Sign in', exact: true) 
    page.assert_text('You are now logged in!') # whatever text shows on the page after successfully logging in 
end.capture 'https://store.steampowered.com/account', 'example.png', width: 500, height: 500, quality: 85 
+0

thx pour votre réponse, vous avez raison, j'avais besoin d'un délai après la connexion. Maintenant ça marche. –