在用户界面中,单击是指按下鼠标按钮或类似的输入设备。
如何在 WebForm (VB.net) 中打开链接按钮的事件处理程序
我做了我的第一个应用程序,但我很难找到我创建的链接按钮的事件处理程序。我将我的 gridview 连接到我的 SQL 文件,进行验证,我现在要做的就是“
我们正在等待由 xpath 标识的按钮可通过以下方式单击: ExpectedConditions.elementToBeClickable() 然后在 Selenium 中点击这个按钮执行。 然后我们得到一个错误: 另一个
所以我正在尝试制作一个照片库,其中: 1.如果您点击其中一张照片,则会弹出一个窗口 2.但在关闭弹出窗口之前,您无法再次单击任何照片。 我已经搞砸了...
我有一个正在使用实时搜索功能的文本框。测试 HTML 效果很好,单击它就会像应有的那样添加到日志中。问题是,一旦我使用搜索框和新的“相同”......
当我将鼠标悬停在菜单上的项目时,我使用下面的代码将一个类添加到我的菜单部分: jQuery(文档).ready(函数() { jQuery('.has-children').hover(function(){ ...</desc> <question vote="0"> <p>当我将鼠标悬停在菜单上的项目时,我使用下面的代码将一个类添加到我的菜单部分:</p> <pre><code><script> jQuery(document).ready(function() { jQuery('.has-children').hover(function(){ jQuery('.header-jr').addClass('br-top-only'); },function(){ jQuery('.header-jr').removeClass('br-top-only'); }); }); </script> </code></pre> <p>它工作得很好,但现在我需要将此函数转换为一个函数,仅当我单击(而不是悬停)在某个项目上时才添加/删除类。我认为以下函数可以工作,但它没有(没有发生任何事情,并且控制台中没有错误)。</p> <pre><code><script> jQuery(document).ready(function() { jQuery('.has-children').click(function(){ jQuery('.header-jr').addClass('br-top-only'); },function(){ jQuery('.header-jr').removeClass('br-top-only'); }); }); </script> </code></pre> <p>有人可以帮我解决这个问题吗?我必须承认,我对 jQuery/JS 的知识几乎为 0,所以如果你能给我一个简单的解决方案,那将对我有很大帮助。</p> <p>PS1:<strong>.has-children</strong>是我的孩子,<strong>.header-jr</strong>是我的父母。</p> <p>PS2:在我的代码中,子“.has-children”并不直接位于父“.header-jr”下方,我之间有大约 5/6 div,所以我认为我不能在 jQuery 中使用“parent”。 </p> </question> <answer tick="false" vote="0"> <p>您可以使用<a href="https://api.jquery.com/toggleclass/" rel="nofollow noreferrer"><pre><code>toggleClass</code></pre></a>,例如:</p> <p></p><div data-babel="false" data-lang="js" data-hide="false" data-console="true"> <div> <pre><code>jQuery(document).ready(function() { jQuery('.has-children').click(function() { jQuery('.header-jr').toggleClass('br-top-only'); }); });</code></pre> <pre><code>.br-top-only{ background-color:red; }</code></pre> <pre><code><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class='header-jr'> <div class='otherdiv'>text</div> <div class='otherdiv'>text</div> <div class='otherdiv'>text</div> <div class='has-children'>text</div> </div></code></pre> </div> </div> <p></p> <p>如果您有多个 <pre><code>header</code></pre> 和 <pre><code>has child</code></pre>:</p> <p></p><div data-babel="false" data-lang="js" data-hide="false" data-console="true"> <div> <pre><code>jQuery(document).ready(function() { jQuery('.has-children').click(function() { jQuery(this).parent('.header-jr').toggleClass('br-top-only'); }); });</code></pre> <pre><code>.br-top-only{ background-color:red; }</code></pre> <pre><code><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class='header-jr'> <div class='otherdiv'>text</div> <div class='otherdiv'>text</div> <div class='otherdiv'>text</div> <div class='has-children'>text</div> </div> <br> <div class='header-jr'> <div class='otherdiv'>text</div> <div class='otherdiv'>text</div> <div class='otherdiv'>text</div> <div class='has-children'>text</div> </div></code></pre> </div> </div> <p></p> <p>如果您有多个级别的<pre><code>divs</code></pre>,您需要使用<a href="https://api.jquery.com/closest/" rel="nofollow noreferrer"><pre><code>closest</code></pre></a>:</p> <p></p><div data-babel="false" data-lang="js" data-hide="false" data-console="true"> <div> <pre><code>jQuery(document).ready(function() { jQuery('.has-children').click(function() { jQuery(this).closest('.header-jr').toggleClass('br-top-only'); }); });</code></pre> <pre><code>.br-top-only { background-color: red; }</code></pre> <pre><code><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class='header-jr'> <div> <div class='otherdiv'>text</div> <div class='otherdiv'>text</div> <div class='otherdiv'>text</div> <div class='has-children'>text</div> </div> </div> <br> <div class='header-jr'> <div> <div class='otherdiv'>text</div> <div class='otherdiv'>text</div> <div class='otherdiv'>text</div> <div class='has-children'>text</div> </div> </div></code></pre> </div> </div> <p></p> </answer> </body></html>
当我尝试单击功能时,pyautogui 和 pydirectinput 都不起作用
我正在尝试使用点击功能。即使光标移动到确切的坐标,它也不会单击,并且该过程以代码 0 结束 将 tkinter 导入为 tk 将 pydirectinput 导入为 p 我...
我正在尝试在Python项目中提高自己,但我陷入了困境。问题是;我希望每次用鼠标左键单击时,我定义的全局变量都会更改为 true-false。那个...
如果我将广告应用添加到我的应用程序中,但我实际上并没有在 Admob 中将其货币化,我仍然可以获得点击费用吗?我上个月发布了一个应用程序,现在我意识到,我没有货币化......
我正在尝试使用 CSS/HTML 编写一个按钮,当您单击它时,它会下拉/显示一个文本框。 这是我想要实现的目标的图像:
我正在尝试创建一个 Chrome 扩展程序,当您单击扩展程序上的按钮时,该扩展程序将单击网页上的元素,但由于某种原因,无论我尝试什么,它都不会执行任何操作。 我有这个...
使用 jQuery 时,边缘中的 <option> 上没有单击事件
刚刚发现,当单击选择选项时,MS Edge 中没有触发单击事件。 这是使用 jQuery 1.9.1 的代码: // data-hide - 在 data-hide 属性 onClick 中隐藏元素 ...
JavaScript Click 不适用于 Google 翻译图像
我尝试编写 JavaScript 扩展来翻译 Windows 剪贴板中的图像。 网站页面网址:https://translate.google.fr/?hl=fr&sl=auto&tl=fr&op=images 图片已经...
单击将 a) 滚动到 div,b) 打开所述 div,c) 将 html 从另一个页面加载到该 div 中。怎么办?
我已经有了“滚动到”和切换功能: $("a.view").click(function(){ $("#content").slideToggle("慢"); 返回假; }); 滚动是通过这个来处理的
我有一个简单的两个div: 菜单 我想单击 div#tic 来上下切换 div#slide_menu。 我正在尝试...
HTML: 采访 这是问题1? 这是一个答案! HTML: <div class="interview"> <h4>Interview</h4> <a href="#" class="question">This is question 1?</a> <div class="answer">This is an answer!</div> <a href="#" class="question">This is question 2?</a> <div class="answer">This is an answer!</div> <a href="#" class="question">This is question 3?</a> <div class="answer">This is an answer!</div> </div> jQuery: if ($('interview')[0]) { $('interview .question').toggle(function () { $(this).next('.answer').slideIn(); }, function () { $(this).next('.answer').slideOut(); }); } ...我不明白为什么它不起作用。 注意点: .interview 另外,没有slideIn,请尝试slideDown和slideUp:http://jsbin.com/ajawo3 如果这些函数中没有任何其他代码,更好的选择是slideToggle:http://api.jquery.com/slideToggle/ 您正在使用类选择器,它应该以 . 开头 所以你必须改变 $('interview .question') 到 $('div.interview .question') 这是一个简单的版本... $('a.question').click(function () { $(this).next('.answer').slideToggle(); });
如何在Python中检查用户是否按下了箭头键?我想要这样的东西: 如果 right_key.pressed(): do_some_shit() elif left_key.pressed(): do_other_stuff()
我有一个问题困扰了一段时间,抱歉在论坛上发了一些垃圾邮件。 有什么方法可以通过元素的文本内容获取元素吗?这是一个例子: 我有一个问题困扰了一段时间,很抱歉在论坛上发了一些垃圾邮件。 有什么方法可以通过元素的文本内容获取元素吗?这是一个例子: <span id="result_5_name" class="market_listing_item_name" style="color: #FFD700;">Item | Anodized Navy</span> 我试图通过文本内容“Item | ”来获取元素阳极氧化海军蓝'。 是否可以做类似的事情: function getelem { var item = document.getElementsByTextContent('Item | Anodized Navy'); item[0].click(); } 我知道这并不存在,但这只是为了让你明白这个想法。另外,我无法通过 Id 或类名使用,并且无法更改元素的 HTML 代码,因此必须使用文本内容来完成,我没有看到其他方法。 我非常感谢任何反馈, 谢谢! 尽管 jQuery 公开了 :contains 伪选择器,但明智的做法是首先在可能的情况下使用类来限制结果: $('.market_listing_item_name:contains("Item | Anodized Navy")') 缩小要搜索的初始标签集可以提高性能,否则将考虑所有标签;此外,重叠的标签也会匹配。 在更现代的浏览器上,您可以考虑这一点,基于这个答案: function contains(selector, text) { var elements = document.querySelectorAll(selector); return [].filter.call(elements, function(element) { var contents = element.textContent || element.innerText || ''; return contents.indexOf(text) != -1; }); } var items = contains('.market_listing_item_name', 'Item | Anodized Navy') items[0] && items[0].click(); 好吧,既然您用 jquery 标记了问题,您可以使用 :contains 选择器: var item = $(':contains(Item | Anodized Navy)'); 但请注意,这将返回包含该文本的 every 元素,包括 span 和跨度的所有父元素。如果您只想获取最里面的元素(假设只有一个),只需获取最后一项,如下所示: var item = $(':contains(Item | Anodized Navy)').last(); 要使用 jQuery 实现等效的 without,你必须实现这样的函数: function getElementsByText(text) { var spans = document.getElementsByTagName('span'), results = []; for(var i = 0; i < spans.length; i++) { var content = spans[i].textContent || spans[i].innerText || ''; if (content.indexOf(text) != -1) results.push(spans[i]); } return results; } 或者可能像这样,具体取决于您需要什么: function getElementsByText(text) { function rec(ele, arr) { if (ele.childNodes.length > 0) for (var i = 0; i < ele.childNodes.length; i++) rec(ele.childNodes[i], arr); else if (ele.nodeType == Node.TEXT_NODE && ele.nodeValue.indexOf(text) != -1) arr.push(ele.parentNode); return arr; } return rec(document.body, []); } 然后像这样调用这个函数: var item = getElementsByText('Item | Anodized Navy'); 另请注意,在您的代码中,getelem需要在函数名称后面有(),如下所示: function getelem() { var item = getElementsByText('Item | Anodized Navy'); ... } 也许我回答这个问题晚了,但我没有看到用 JQuery 标记的问题,所以这里有一个纯 JavaScript 解决方案: var myID = getElementsByTextContent('Item | Anodized Navy'); function getElementsByTextContent (elText){ var spanID; var allSpans = document.getElementsByTagName("span"); for (var i = 0; i < allSpans.length; i++) { var spanText = allSpans[i].innerHTML; if(spanText == elText ){ spanID = allSpans[i].id; } } return spanID; } 你想要这样的东西 HTML <span id="result_5_name" class="market_listing_item_name" style="color: #FFD700;">Item | Anodized Blue</span> <span id="result_6_name" class="market_listing_item_name" style="color: #FFD700;">Item | Anodized Navy</span> <span id="result_7_name" class="market_listing_item_name" style="color: #FFD700;">Item | Anodized Red</span> <span id="result_8_name" class="market_listing_item_name" style="color: #FFD700;">Item | Anodized Green</span> <span id="result_9_name" class="market_listing_item_name" style="color: #FFD700;">Item | Anodized Navy</span> Javascript function walkTheDOM(node, func) { func(node); node = node.firstChild; while (node) { walkTheDOM(node, func); node = node.nextSibling; } } function getElementsByText(node, text) { var results = []; walkTheDOM(node, function (currentNode) { if (currentNode.nodeType === 3 && currentNode.nodeValue === text) { results.push(currentNode.parentNode); } }); return results; } console.log(getElementsByText(document, 'Item | Anodized Navy')); 输出 [span#result_6_name.market_listing_item_name, span#result_9_name.market_listing_item_name] 在 jsFiddle 额外 1,正如我们所讨论的 treeWalker function getElementsByText(node, text) { var results = [], treeWalker = document.createTreeWalker( node, NodeFilter.SHOW_TEXT, { acceptNode: function (node) { return NodeFilter.FILTER_ACCEPT; } }, false); while (treeWalker.nextNode()) { if (treeWalker.currentNode.nodeValue === text) { results.push(treeWalker.currentNode.parentNode); } } return results; } console.log(getElementsByText(document, 'Item | Anodized Navy')); 在 jsFiddle 另外 2,正如我们所讨论的 getElementsByTagName('*') function getElementsByText(node, text) { var results = [], tags = node.getElementsByTagName('*'), tagsLength = tags.length, tagsIndex, currentTag, childNodes, childNodesLength, ChildNodesIndex, currentChildNode; for (tagsIndex = 0; tagsIndex < tagsLength; tagsIndex += 1) { currentTag = tags[tagsIndex]; childNodes = currentTag.childNodes; childNodesLength = childNodes.length; for (ChildNodesIndex = 0; ChildNodesIndex < childNodesLength; ChildNodesIndex += 1) { currentChildNode = childNodes[ChildNodesIndex]; if (currentChildNode.nodeType === 3 && currentChildNode.nodeValue === text) { results.push(currentTag); } } } return results; } console.log(getElementsByText(document, 'Item | Anodized Navy')); 在 jsFiddle 请注意,这些解决方案是相同的,但与此处给出的所有 contains 解决方案不同。因为这些解决方案实际上为您提供了具有匹配文本节点作为子节点的节点。我使用的简单标记并未证明这一点,但当标记高度嵌套时,您很快就会注意到差异。 最后这是这 3 个解决方案的 jsPerf。 您可以简单地使用Jquery的:contains() 如果要选择包含文本“mytext”的所有范围,请使用 var elements=$('span:contains("mytext")); 如果对您有帮助,请标记为答案。 谢谢你:) 对于我的用例,我编写了一些简单的版本。 :not(has(*))对于防止父母的出现很有用。 function getElementsByText(root, text, selector = 'div:not(:has(*))') { const els = [...root.querySelectorAll(selector)]; return els.filter(el => el.innerText == text); }
Flutter - 如何在未聚焦的小部件中单击鼠标时检测按住键(CTRL)?
我可以使用 FocusNode 等焦点来识别何时按下 CTRL。但为此,需要首先关注小部件。有没有人有任何关于如何在小部件未获得焦点时检测此 CTRL 的提示...
我对 python selenium 很陌生,我正在尝试单击一个具有以下 html 结构的按钮: 我对 python selenium 很陌生,我正在尝试单击一个具有以下 html 结构的按钮: <div class="b_div"> <div class="button c_button s_button" onclick="submitForm('mTF')"> <input class="very_small" type="button"></input> <div class="s_image"></div> <span> Search </span> </div> <div class="button c_button s_button" onclick="submitForm('rMTF')" style="margin-bottom: 30px;"> <input class="v_small" type="button"></input> <span> Reset </span> </div> </div> 我希望能够单击上面的 Search 和 Reset 按钮(显然是单独的)。 我尝试了一些方法,例如: driver.find_element_by_css_selector('.button .c_button .s_button').click() 或者, driver.find_element_by_name('s_image').click() 或者, driver.find_element_by_class_name('s_image').click() 但是,我似乎总是以NoSuchElementException结束,例如: selenium.common.exceptions.NoSuchElementException: Message: u'Unable to locate element: {"method":"name","selector":"s_image"}' ; 我想知道是否可以使用 HTML 的 onclick 属性来进行 Selenium 单击? 任何能够为我指明正确方向的想法都会很棒。 谢谢。 删除 css 选择器中类之间的空格: driver.find_element_by_css_selector('.button .c_button .s_button').click() # ^ ^ => driver.find_element_by_css_selector('.button.c_button.s_button').click() 试试这个: 下载firefox,添加插件“firebug”和“firepath”;安装它们后,转到您的网页,启动 firebug 并找到元素的 xpath,它在页面中是唯一的,因此您不会犯任何错误。 看图: browser.find_element_by_xpath('just copy and paste the Xpath').click() 对于Python,使用 from selenium.webdriver import ActionChains 和 ActionChains(browser).click(element).perform() 打开一个网站 https://adviserinfo.sec.gov/compilation 并单击按钮下载文件,即使我想关闭弹出窗口(如果它使用 python selenium) from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import time from selenium.webdriver.chrome.options import Options #For Mac - If you use windows change the chromedriver location chrome_path = '/usr/local/bin/chromedriver' driver = webdriver.Chrome(chrome_path) chrome_options = webdriver.ChromeOptions() chrome_options.add_argument("--disable-popup-blocking") driver.maximize_window() driver.get("https://adviserinfo.sec.gov/compilation") # driver.get("https://adviserinfo.sec.gov/") # tabName = driver.find_element_by_link_text("Investment Adviser Data") # tabName.click() time.sleep(3) # report1 = driver.find_element_by_xpath("//div[@class='compilation-container ng-scope layout-column flex']//div[1]//div[1]//div[1]//div[2]//button[1]") report1 = driver.find_element_by_xpath("//button[@analytics-label='IAPD - SEC Investment Adviser Report (GZIP)']") # print(report1) report1.click() time.sleep(5) driver.close() 我在使用Phantomjs作为浏览器时遇到了同样的问题,所以我通过以下方式解决了: driver.find_element_by_css_selector('div.button.c_button.s_button').click() 基本上我已将 DIV 标签的名称添加到引用中。 以下调试过程帮助我解决了类似的问题。 with open("output_init.txt", "w") as text_file: text_file.write(driver.page_source.encode('ascii','ignore')) xpath1 = "the xpath of the link you want to click on" destination_page_link = driver.find_element_by_xpath(xpath1) destination_page_link.click() with open("output_dest.txt", "w") as text_file: text_file.write(driver.page_source.encode('ascii','ignore')) 然后,您应该有两个文本文件,其中包含您所在的初始页面(“output_init.txt”)和单击按钮后转发到的页面(“output_dest.txt”)。如果它们相同,那么是的,您的代码不起作用。如果不是,那么您的代码可以工作,但您还有另一个问题。 对我来说,问题似乎是转换内容以生成我的钩子所需的 JavaScript 尚未执行。 我认为你的选择: 让驱动程序执行 javascript,然后调用您的 find 元素代码。查找有关此问题的更详细答案 stackoverflow,因为我没有遵循这种方法。 只需在“output_dest.txt”上找到一个类似的钩子即可产生相同的结果,这就是我所做的。 在点击任何内容之前尝试稍等一下: xpath2 =“你要点击的xpath” WebDriverWait(驱动程序,超时=5).until(lambda x: x.find_element_by_xpath(xpath2)) xpath 方法不一定更好,我只是更喜欢它,您也可以使用选择器方法。 我遇到了同样的问题,并且使用 Firefox,我通过以下步骤获得了按钮元素: 右键单击感兴趣的按钮并选择“检查辅助功能属性” 这将打开检查器。右键单击突出显示的行,然后单击“打印到 JSON” 这将打开一个新选项卡。查找 nodeCssSelector 并复制值 这允许我通过使用接受雅虎网站的cookie。 url = "https://yahoo.com" driver = Firefox(executable_path="geckodriver.exe") driver.get(url) driver.find_element_by_css_selector("button.btn:nth-child(5)").click() 我对此进行了进一步测试,它使我能够轻松接受单独的 cookie。只需重复之前提到的步骤即可获取按钮名称。 url = "https://yahoo.com" driver = Firefox(executable_path="geckodriver.exe") driver.get(url) driver.find_element_by_css_selector("a.btn").click() driver.find_element_by_css_selector(".firstPartyAds > div:nth-child(2) > label:nth-child(1)").click() driver.find_element_by_css_selector(".preciseGeolocation > div:nth-child(2) > label:nth-child(1)").click() driver.find_element_by_css_selector("button.btn").click() 另一种方法是 右键单击感兴趣的按钮并选择“检查” 右键单击突出显示的行,然后单击“复制 -> CSS 选择器”或任何您需要的内容(有多个选项,包括 XPath) 但是,我认为第二种方法可能包含空格,具体取决于您复制的内容,因此您可能需要手动删除(其中一些)它们。第一种方法似乎更万无一失,但我不知道它是否/如何在火狐以外的其他浏览器上工作。第二种方法应该适用于所有浏览器。 e = driver.find_element(By.XPATH, 's_image').click() 有时它不起作用! 你可以尝试: e = driver.find_element(By.XPATH, 's_image') driver.execute_script("arguments[0].click();", e) 使用此代码点击按钮 # finding the button using ID button = driver.find_element_by_id(ID) # clicking on the button button.click() 对于Python,你可以做类似的事情 from selenium.webdriver.common.keys import Keys driver = webdriver.Firefox() button = driver.find_element(By.ID, "my_button") element.send_keys(Keys.RETURN) 这样做的原因是,当您使用 webdriver.find_element 时,给定的元素将被聚焦,并且当按钮被聚焦时,按“Enter”键将触发该按钮上的单击事件。
我有这个问题.. 我在一个主页上有一个“登录”链接按钮和一个“用户列表”链接按钮。当用户登录后,单击“UserList”链接按钮,用户列表页面上有