Что нового

[Автоматизация] Выпадающий список VK.com

ckret

Новичок
Сообщения
44
Репутация
0
:stars: Подскажите как подружится с выпадающим списками в VK, понимаю, что дело обстоит в трех строках, а допереть до конечного результата не получается. Выпадающий список с выбором даты рождения при редактировании профиля.

Код:
<div class="pedit_bday fl_l"><div class="selector_container dropdown_container big" id="container12" style="width: 55px;"><table class="selector_table" cellspacing="0" cellpadding="0">    <tbody><tr>      <td class="selector">        <div class="placeholder_wrap1" style="display: none;">          <div class="placeholder_wrap2">            <div class="placeholder_content" style="color: rgb(140, 142, 145);"></div>            <div class="placeholder_cover"></div>          </div>        </div>        <span class="selected_items"></span>        <input class="selector_input selected" style="width: 20px; color: rgb(0, 0, 0);" type="text" readonly="true">        <input name="pedit_bday" class="resultField" id="pedit_bday" type="hidden" value="0">        <input name="pedit_bday_custom" class="customField" id="pedit_bday_custom" type="hidden" value="">      </td><td class="selector_dropdown" id="dropdown12" style="width: 26px;"> </td>    </tr>  </tbody></table>  <div class="results_container">    <div class="result_list scroll-outer-border result_list_scrollable" style="width: 54px; height: 250px; bottom: auto; display: none; visibility: visible;"><ul style="visibility: visible; position: relative;"><li class="first" onmousedown="Select.itemMouseDown(12, 0, this)" onmousemove="Select.itemMouseMove(12, 0, this)" val="0">День:</li><li onmousedown="Select.itemMouseDown(12, 1, this)" onmousemove="Select.itemMouseMove(12, 1, this)" val="1">1</li><li onmousedown="Select.itemMouseDown(12, 2, this)" onmousemove="Select.itemMouseMove(12, 2, this)" val="2">2</li><li onmousedown="Select.itemMouseDown(12, 3, this)" onmousemove="Select.itemMouseMove(12, 3, this)" val="3">3</li><li onmousedown="Select.itemMouseDown(12, 4, this)" onmousemove="Select.itemMouseMove(12, 4, this)" val="4">4</li><li onmousedown="Select.itemMouseDown(12, 5, this)" onmousemove="Select.itemMouseMove(12, 5, this)" val="5">5</li><li onmousedown="Select.itemMouseDown(12, 6, this)" onmousemove="Select.itemMouseMove(12, 6, this)" val="6">6</li><li onmousedown="Select.itemMouseDown(12, 7, this)" onmousemove="Select.itemMouseMove(12, 7, this)" val="7">7</li><li onmousedown="Select.itemMouseDown(12, 8, this)" onmousemove="Select.itemMouseMove(12, 8, this)" val="8">8</li><li onmousedown="Select.itemMouseDown(12, 9, this)" onmousemove="Select.itemMouseMove(12, 9, this)" val="9">9</li><li onmousedown="Select.itemMouseDown(12, 10, this)" onmousemove="Select.itemMouseMove(12, 10, this)" val="10">10</li><li onmousedown="Select.itemMouseDown(12, 11, this)" onmousemove="Select.itemMouseMove(12, 11, this)" val="11">11</li><li onmousedown="Select.itemMouseDown(12, 12, this)" onmousemove="Select.itemMouseMove(12, 12, this)" val="12">12</li><li onmousedown="Select.itemMouseDown(12, 13, this)" onmousemove="Select.itemMouseMove(12, 13, this)" val="13">13</li><li onmousedown="Select.itemMouseDown(12, 14, this)" onmousemove="Select.itemMouseMove(12, 14, this)" val="14">14</li><li onmousedown="Select.itemMouseDown(12, 15, this)" onmousemove="Select.itemMouseMove(12, 15, this)" val="15">15</li><li onmousedown="Select.itemMouseDown(12, 16, this)" onmousemove="Select.itemMouseMove(12, 16, this)" val="16">16</li><li onmousedown="Select.itemMouseDown(12, 17, this)" onmousemove="Select.itemMouseMove(12, 17, this)" val="17">17</li><li onmousedown="Select.itemMouseDown(12, 18, this)" onmousemove="Select.itemMouseMove(12, 18, this)" val="18">18</li><li onmousedown="Select.itemMouseDown(12, 19, this)" onmousemove="Select.itemMouseMove(12, 19, this)" val="19">19</li><li onmousedown="Select.itemMouseDown(12, 20, this)" onmousemove="Select.itemMouseMove(12, 20, this)" val="20">20</li><li onmousedown="Select.itemMouseDown(12, 21, this)" onmousemove="Select.itemMouseMove(12, 21, this)" val="21">21</li><li onmousedown="Select.itemMouseDown(12, 22, this)" onmousemove="Select.itemMouseMove(12, 22, this)" val="22">22</li><li onmousedown="Select.itemMouseDown(12, 23, this)" onmousemove="Select.itemMouseMove(12, 23, this)" val="23">23</li><li onmousedown="Select.itemMouseDown(12, 24, this)" onmousemove="Select.itemMouseMove(12, 24, this)" val="24">24</li><li onmousedown="Select.itemMouseDown(12, 25, this)" onmousemove="Select.itemMouseMove(12, 25, this)" val="25">25</li><li onmousedown="Select.itemMouseDown(12, 26, this)" onmousemove="Select.itemMouseMove(12, 26, this)" val="26">26</li><li onmousedown="Select.itemMouseDown(12, 27, this)" onmousemove="Select.itemMouseMove(12, 27, this)" val="27">27</li><li onmousedown="Select.itemMouseDown(12, 28, this)" onmousemove="Select.itemMouseMove(12, 28, this)" val="28">28</li><li onmousedown="Select.itemMouseDown(12, 29, this)" onmousemove="Select.itemMouseMove(12, 29, this)" val="29">29</li><li onmousedown="Select.itemMouseDown(12, 30, this)" onmousemove="Select.itemMouseMove(12, 30, this)" val="30">30</li><li class="last " onmousedown="Select.itemMouseDown(12, 31, this)" onmousemove="Select.itemMouseMove(12, 31, this)" val="31">31</li></ul></div>    <div class="result_list_shadow" style="width: 54px; margin-top: 251px; display: none;">      <div class="shadow1"></div>      <div class="shadow2"></div>    </div>  </div></div></div>
 
Автор
C

ckret

Новичок
Сообщения
44
Репутация
0
:'( Ребятки, хоть кто нибудь покажите пример как придать выпадающему списку Вконтакте, нужное значение. http://vk.com/edit
В благодарность пополню мобильный счет любого оператора.
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Кажется, стало уже что-то получаться...
Код:
#include <IE.au3>
Global $oIE, $oInput1, $oInput2, $oInput3

$oIE = _IECreate("http://vk.com/edit")

$oInput1 = _IEGetObjById($oIE, "pedit_bday"); день
$oInput2 = _IEGetObjById($oIE, "pedit_bmonth"); месяц
$oInput3 = _IEGetObjById($oIE, "pedit_byear"); год

_IEVKSelect($oInput1, "20")
_IEVKSelect($oInput2, "11")
_IEVKSelect($oInput3, "1995")


Func _IEVKSelect(ByRef $oObj, $value)
	Local $oUl, $oListItems
	If Not IsObj($oObj) Then Return SetError(1, 0, 0)
	$oObj.parentNode.getElementsByTagName("input").item(0).focus()
	$oUl = $oObj.parentNode.parentNode.parentNode.parentNode.parentNode.getElementsByTagName("ul").item(0)
	If Not IsObj($oUl) Then Return SetError(2, 0, 0)
	$oListItems = $oUl.getElementsByTagName("li")
	If Not IsObj($oListItems) Then Return SetError(3, 0, 0)
	For $oListItem In $oListItems
		If $oListItem.getAttribute("val") = $value Or $oListItem.innerHTML = $value Then
			$oListItem.fireEvent("OnMousedown")
			ExitLoop
		EndIf
	Next
	Sleep(100)
	Return 1
EndFunc   ;==>_IEVKSelect
Ура! :smile: У меня работает, IE11.
 
Автор
C

ckret

Новичок
Сообщения
44
Репутация
0
Алилуя! :laugh: Я уже отчаялся. Пришли свой номер в ЛС.
Спасибо. :beer:
 
Автор
C

ckret

Новичок
Сообщения
44
Репутация
0
А есть ли возможность сделать выбор в выпадающем списке не по val или названию, а по порядковому номеру в этом списке Select.itemMouseDown(12, 1, this) , Select.itemMouseDown(12, 2, this) ... ?
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
ckret сказал(а):
А есть ли возможность сделать выбор в выпадающем списке не по val или названию, а по порядковому номеру в этом списке Select.itemMouseDown(12, 1, this) , Select.itemMouseDown(12, 2, this) ... ?
Как-то так :smile:
Код:
#include <IE.au3>
Global $oIE, $oInput1, $oInput2, $oInput3

$oIE = _IECreate("http://vk.com/edit")

$oInput1 = _IEGetObjById($oIE, "pedit_bday"); день
$oInput2 = _IEGetObjById($oIE, "pedit_bmonth"); месяц
$oInput3 = _IEGetObjById($oIE, "pedit_byear"); год

_IEVKSelect($oInput1, "20")
_IEVKSelect($oInput2, "11")
;// _IEVKSelect($oInput3, "1995")
_IEVKSelect($oInput3, "", 6)


Func _IEVKSelect(ByRef $oObj, $value, $iNum = -1)
	Local $oUl, $oListItems
	If Not IsObj($oObj) Then Return SetError(1, 0, 0)
	$oObj.parentNode.getElementsByTagName("input").item(0).focus()
	$oUl = $oObj.parentNode.parentNode.parentNode.parentNode.parentNode.getElementsByTagName("ul").item(0)
	If Not IsObj($oUl) Then Return SetError(2, 0, 0)
	$oListItems = $oUl.getElementsByTagName("li")
	If Not IsObj($oListItems) Then Return SetError(3, 0, 0)
	For $oListItem In $oListItems
		$c_item = Int(StringStripWS(StringRegExpReplace($oListItem.getAttribute("onmousedown"), '(?si).*?Select\.itemMouseDown\([\d]+,.*?([\d]+).*', '$1'), 8))
		;If $iNum <> -1 Then ConsoleWrite("mousedown item: "&$c_item&"; value: "&$oListItem.getAttribute("val")&@CRLF)
		If ($iNum == -1 And ($oListItem.getAttribute("val") = $value Or $oListItem.innerHTML = $value)) Or ($iNum >= 0 And $c_item == $iNum) Then
			$oListItem.fireEvent("OnMousedown")
			ExitLoop
		EndIf
	Next
	Sleep(100)
	Return 1
EndFunc   ;==>_IEVKSelect
 
Верх