게시 된 다른 방법보다 손쉽게 접근 할 수있는 것으로 보이는 웹 페이지의 테이블 데이터에 액세스하려고합니다. 나는 페이지를 HTML 파일로 저장하면 테이블과 그 데이터가 포함되지 않기 때문에 Watir이 볼 수있는 일부 HTML이 염려된다.Watir을 사용하여 Google 그룹 회원 페이지의 테이블 셀 값에 액세스
상황 : Google 그룹스에는 회원 목록이 있습니다 (그룹 관리자로 설정을 볼 때). 이메일 주소와 일치하는 표를 찾고 싶습니다 (또는 반복). 발견되면 행 (확인란)을 선택하면 '작업'메뉴가 활성화됩니다. 작업 메뉴에서 '이메일 없음'으로 게재 설정을 업데이트합니다.
회원 페이지의 캡쳐 화면과 HTML 스 니펫을 첨부했습니다.
Google 그룹스 테이블에 대한 제안/답변을 게시 해주십시오. 나는 단순한 HTML 페이지에서 작동하는 6 가지 이상의 다른 접근 방식을 시도했지만 Google 그룹스에서는 작동하지 않습니다.
감사
는 여기에 액세스하려고하고 메뉴의 스크린 샷입니다.
'동작'메뉴 버튼을 클릭하기 전후에 호버링 메뉴가 표시됩니다.
<div tabindex="0" role="button" class="IVILX2C-n-a jfk-button-standard IVILX2C-k-c IVILX2C-n-a-selected IVILX2C-n-j" aria-haspopup="true" aria-controls="gwt-uid-809" aria-expanded="true" aria-disabled="false" data-title="Actions" aria-activedescendant="gwt-uid-819">
주
후<div tabindex="0" role="button" class="IVILX2C-n-a jfk-button-standard IVILX2C-k-c" aria-haspopup="true" aria-controls="gwt-uid-809" aria-expanded="false" aria-disabled="false" data-title="Actions">
업데이트 :
아래 코드 :이 세 가지 라인은 '아니오 이메일을', '작업'메뉴를 클릭하지 '변경 전송 설정을'위로 마우스를 이동하고 클릭@driver.element(text: 'Actions').click
@driver.element(text: 'Change delivery setting').hover
@driver.div(class: 'popupContent', index: 1).div.div.div(text: 'No email').click
편집을 작동하는 것
require 'rubygems'
require 'watir-webdriver'
require 'logger'
require 'csv'
def setup
@driver = Watir::Browser.new :chrome
# set the timeout for implicit waits
@driver.driver.manage.timeouts.implicit_wait = 5
#Create log file
if @logger.nil?
@logger = Logger.new('D:/Google Drive/_code/GroupsEmailSetting/ChangeDeliverySetting_log.txt',10)
@logger.level = Logger::DEBUG
@logger.datetime_format = '%Y-%m-%d %H:%M:%S%z'
end
#admin credentials
@login_user = '[email protected]'
@login_pwd = 'pwd!'
end
def teardown
puts "Enter to close"
a = gets.chomp
@driver.quit
@logger.close
end
def run
setup
yield
teardown
end
run do
@driver.goto "https://accounts.google.com"
element = @driver.text_field(:id => "Email")
element.send_keys(@login_user)
@driver.button(:id => "next").click
element = @driver.text_field(:id => "Passwd")
element.send_keys(@login_pwd)
@driver.button(:id => "signIn").click
@logger.info "User logged in: #{@user}"
#TEMP # find users, change email setting
@domain = 'domain.com'
@group = 'watir_table'
@user = '[email protected]'
@dsetting = 'No email'
@logger.info("Group & User selected: #{@group + "@" + @domain + " : " + @user}")
#END TEMP
@driver.goto "https://groups.google.com/a/domain.com/forum/#!managemembers/#{@group}/members/active"
@logger.info "Group loaded: #{@group}"
browser.span(text: '[email protected]').parent.parent.checkbox.click
end
나는이 때'browser.span (텍스트 : '[email protected]'). 나는'얻을 parent.parent.checkbox.click'을 "나가서 설명하자면 NameError : 정의되지 않은 지역 변수 또는 '브라우저'를 '@driver'로 변경하면 {: text-> "[email protected]", : tag_name => "span"}을 사용하여 '예외'가 요소를 찾을 수 없습니다. ' – Ben
코드로 게시물을 업데이트하십시오. Watir을 사용한다면 다음과 같은 것이 필요합니다.'browser = Watir :: Browser.new : chrome' – titusfortner
메인 코드에 코드를 추가했습니다. 나는 당신이 언급 한 명령을 가지고있다. 지금까지, 내 코드는 테이블 내의 요소를 찾을 때까지 작동합니다. – Ben