2016-12-13 1 views
0

나는 이것을 해결하는 방법을 찾고 있었지만 나에게 맞는 것을 찾지 못했습니다. 누군가가 도울 수 있기를 바랍니다.Selenium + Python을 사용하여 type = "hidden"필드에 값 입력

내가 파이썬과 셀레늄 크롬 브라우저를 사용하고 사용자 이름 또는 이메일을 입력 한 다음 HTML이있는 웹 사이트에 로그인을 시도 웹 사이트에있어 : ​​

<div> 
<span class="g-hdn" id="1986367435LabelSpan"><label for="1986367435">Email or username</label></span> 
<label for="1986367435">Email or username</label> 
</span> 
<span> 
<input size="40" maxlength="64" name="1986367435" id="1986367435" type="text" autocapitalize="off" autocorrect="off" placeholder="Email or username" class="fld"> 
</span> 
</div> 
<input name="runId2" type="hidden" value="AQABAAAAUCjLu3T7Joi/PEg380w56IAM9Zt6nK8i63MlZ+2gBdjoHrnTe3XAyLU4iGu37LvUilofnGbWAcTJFUjq6KhmWxEHtQVaMNfWeeaZUxXe9asa"> 

나는이 입력을 선택할 수 없습니다를 ID 나 이름을 번호로 사용하는 것은 매번 달라 지므로 placeholder = "Email or username"을 사용하여 입력 상자를 선택하고 싶습니다.

나는이 위치를 선택하고 일부 문자열을 입력하려고 할 때마다 내가 말하는 오류가 나타날 수

selenium.common.exceptions.ElementNotVisibleException : 메시지 : 때문에이 될 것으로 보인다

보이지 않는 요소를 type = "hidden".

이것을 선택하고 텍스트를 입력하는 방법에 대한 아이디어가 있으십니까? 나는 (다음을 사용하여 요소를 선택할 수있는 요소가 정말 숨겨져 있는지 확실 확신

driver.find_element_by_xpath("//input[@placeholder='Email or username']").send_keys("email") 

: 나는 현재 오류를주고 자리 표시자를 선택하려면 다음 코드를 사용하고

ID를 사용할 수있게되면) :

driver.find_element_by_xpath("//*[@id='1986367435']").send_keys("email") 

많은 도움을 주셔서 감사합니다.

+0

그 자리에 입력이'유형 = "텍스트"'숨겨진되지 않습니다 :이 문제를 해결하기 위해 ExplicitWait를 사용하려고 할 수 있습니다 그것은 처음 페이지 리디렉션 후 보이지 수 있습니다. – Barmar

+0

파이썬 코드를 게시하여 문제점이 무엇인지 확인할 수 있어야합니다. – Barmar

+0

''이 누락되었습니다. 맞습니까? – cwallenpoole

답변

0

대상 입력 필드에는 type="hidden" 속성이 없습니다.

from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 

WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH,'//input[@placeholder="Email or username"]'))) 
+0

감사합니다. Andersson이 조언을드립니다. 내가 시도했지만 시간이 초과 된 것처럼 보였다. selenium.common.exceptions.TimeoutException : 메시지 : – blountdj

+0

'len (driver.find_elements_by_xpath ('// input [@ placeholder = "Email or username"]')의 결과는 무엇인가?)'? – Andersson

관련 문제