2014-10-20 2 views
-1

여기 내 코드입니다 :Selenium을 통해 오브젝트 (HTML 코드의 요소) 값을 변경하는 방법은 무엇입니까?

import threading 
import Queue 
import socket 
import pickle 
import base64 
import time 

def enter_mashov(): 
    from selenium import webdriver 
    from selenium.common.exceptions import TimeoutException 
    from selenium.webdriver.support.ui import WebDriverWait 
    from selenium.webdriver.support import expected_conditions as EC 

    # Create a new instance of the Firefox driver 
    start = time.time() 
    driver = webdriver.Firefox() 

    driver.get('https://safe.mashov.info/students/login.aspx') 

    # find the elements 
    IDChanger = driver.find_element_by_id('TextBoxId') 
    PassChanger = driver.find_element_by_id('TextBoxPass') 

    IDChanger.send_keys('someid') 
    PassChanger.send_keys('somepass') 

enter_mashov() 

나는 내가 ID 체인저 및 암호 체인저했던 것처럼 동일한 작업을 수행하고 싶습니다,하지만 문제는 내가 그것을 드롭 다운 목록, 그리고이 옵션 아무튼 것 ID 또는 이름은 소유하지 않지만 가치는 없습니다. 개체의 값을 변경하는 방법은 무엇입니까?
값을 바꾸면 드롭 다운 목록의 옵션에서 옵션을 선택하십시오.

답변

0

<select> 요소와 상호 작용하려면 Select() 클래스를 사용하십시오.

select = Select(driver.find_element_by_id("select_id")) 
select.select_by_visible_text("The thing you want to select") 
0

당신 태그 이름으로 iterate through the elements 수 및 옵션 그런 식으로 선택하거나 id를 가지고 요소를 필요로하지 않는 자신의 xpath을 사용할 수 있습니다

select = driver.find_element_by_tag_name("select") 
allOptions = select.find_elements_by_tag_name("option") 
for option in allOptions: 
    print "Value is: " + option.get_attribute("value") 
    option.click() 

매우 비슷한 질문이 있습니다를 약 how to do it in Java. 파이썬에서

xpath method :

from selenium.webdriver.common.by import By 
inputs = driver.find_elements(By.XPATH, "//input") 
0

드롭 다운 목록 가능성이 높습니다 select 요소입니다.

내부에있는 select 요소는 option 요소 그룹입니다.

브라우저의 웹 개발자 도구를 사용하여 드롭 다운 목록의 html 코드를 확인하십시오.

이 값을 설정하려면, 단지 사용자가 할 것이다 무엇 : 당신이 선택 할 option 요소에 select 요소
  • 클릭에

    1. 을 클릭합니다.

    옵션 요소를 찾는 방법은 여러 가지가 있습니다. 표시되는 텍스트로 식별하려면 @MarkRowlands answer를 사용하십시오. 값으로 찾으려면 option[value='valueToPick']과 같은 CSS 선택기를 사용할 수 있습니다.

  • 관련 문제