以下是message = driver.execute_script(""" function getCommand() {
var MSGNUM = document.getElementsByClassName("ChatBox").length -1;
var MSG = document.getElementsByClassName("message-body")[MSGNUM];
MSG = MSG.innerHTML;
var NAME = document.getElementsByClassName("username")[MSGNUM];
NAME = NAME.innerHTML;
var COMMAND = (NAME+" "+MSG);
return(COMMAND);
}
returngetCommand()""");
的源代码片段。我正在努力寻找合适的选择器:
<select>
我想在Puppeteer中为<label class="control-label pull-right" style="margin-right: 10px; font-weight: 100;">
<small>Show</small>
<select class="input-sm grid-per-pager" name="per-page">
<option value="https://www.mysite-com/admin/order?per_page=10" >10</option>
<option value="https://www.mysite-com/admin/order?per_page=20" selected>20</option>
<option value="https://www.mysite-com/admin/order?per_page=30" >30</option>
<option value="https://www.mysite-com/admin/order?per_page=50" >50</option>
<option value="https://www.mysited-com/admin/order?per_page=100" >100</option>
</select>
<small>Piece</small>
</label>
选择per_page=100
的选项。以下尝试的选择器不正确,错误为page.click()
。
node not found
答案 0 :(得分:1)
使用 HTMLOptionsCollection API 并为其分配一个<script>
function inc_qty(product_name){
var qty_val = parseInt($('#qty_display_'+product_name).text());
qty_val = qty_val + 1;
$('#qty_display_'+product_name).text(qty_val);
}
</script>
。以下演示找到了.class
中的最后一个<option>
,为其分配了一个<select>
,并将其.class
更改为background-color
红色。
tomato
var opts = document.querySelector('.input-sm').options;
opts[opts.length -1].classList.add('lastOpt');
document.querySelector('.lastOpt').style.background = 'tomato';
答案 1 :(得分:1)
您可以为option
元素使用以下选择器:
option[value="https://www.mysited-com/admin/order?per_page=100"]
否则,如果选择器是页面上唯一一个以value
结尾的per_page=100
元素,则可以将选择器简化一些内容:
[value$="per_page=100"]
请注意,您可以使用内置的page.select()
函数从Puppeteer的option
元素中选择select
,但是您需要传递{{1 }}元素和select
元素的value
:
option