uzyskać element nie jest widoczny błąd:Błąd próbuje się zalogować do serwisu za pomocą selenu z Pythona
ElementNotVisibleException: Message: u'Element is not currently visible and so may
not be interacted with'
Dla każdego elementu wybrać linię, kiedy uruchomić ten kod:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://www.example.com')
browser.find_element_by_name('username').send_keys('myusername')
browser.find_element_by_name('password').send_keys('mypassword')
browser.find_element_by_class_name('welcomeLoginButton').click()
HTML sekcja logowania na stronie wygląda następująco:
<div class='welcomeLoginUsername'>
<div class='welcomeLoginUsernameLabel'><b>Username:</b></div>
<div class='welcomeLoginUsernameInput'><input type='text' name='username' tabindex='1'>
<br><a class='sf' href='javascript: void(0);' onclick='showUsernamePopup();'>
<b>Forgot Username?</b></a>
</div>
</div>
<div class='welcomeLoginPassword'>
<div class='welcomeLoginPasswordLabel'>
<b>Password:</b>
<br><span class='sf'>(It's cAsE sEnSitIvE!)</span>
</div>
<div class='welcomeLoginPasswordInput'>
<input type='password' name='password' tabindex='2'>
<br><a class='sf' href="javascript: void(0);" onclick="showPasswordPopup();">
<b>Forgot Password?</b></a>
</div>
</div>
</div>
<input type="submit" value="" class='welcomeLoginButton' style='border: 0px;
padding: 0px; margin: 0px;) no-repeat;' onclick='document.forms["login"].submit()'>
można użyć [ 'WebDriverWait() until' lub' browser.implicitly_wait (1) '.] (http: // seleniumhq.org/docs/ 04_webdriver_advanced.html) zamiast 'time.sleep()'. – jfs
Po wykonaniu twojej rady firebug zmieniłem kod na następujący:. browser.find_element_by_class_name ('welcomeLoginUsernameInput') find_element_by_name ('username') send_keys ('login') browser.find_element_by_class_name ('welcomeLoginPasswordInput') find_element_by_name.. ('hasło'). send_keys ('password') browser.find_element_by_class_name ('welcomeLoginButton'). click() dont dostać element już nie widoczny błąd i kliknie przycisk Prześlij, ale z jakiegoś powodu jego nie wpisywanie nazwy i hasła w polach wejściowych. – Frozsht