Python 按钮未被单击
脚本需要单击弹出窗口上的“确定”按钮。该按钮没有被任何IFrame包围,只有Textarea在IFrame内。我使用CSS选择器和XPath单击一个按钮,它不会被单击,也不会再现错误Python 按钮未被单击,python,selenium,Python,Selenium,脚本需要单击弹出窗口上的“确定”按钮。该按钮没有被任何IFrame包围,只有Textarea在IFrame内。我使用CSS选择器和XPath单击一个按钮,它不会被单击,也不会再现错误 driver.find_element_by_xpath("//*[@id='mceu_7']").click() driver.switch_to.frame(driver.find_element_by_xpath("//iframe[@src='https://qsm.qoo10.sg/gmkt.inc
driver.find_element_by_xpath("//*[@id='mceu_7']").click()
driver.switch_to.frame(driver.find_element_by_xpath("//iframe[@src='https://qsm.qoo10.sg/gmkt.inc.gsm.web/common/scripts/module/tiny_mce_4.5.7/source/plugins/codemirror/source.html']"))
driver.find_element_by_xpath("/html/body/div/div[1]/textarea").send_keys("Some text")
driver.switch_to.default_content()
# Click on the "Ok" button.
time.sleep(10)
driver.find_elements_by_css_selector("#mceu_108 > button:nth-child(1)").click()
在使用切换到.default\u content()之前,也单击了按钮。
以下是弹出窗口的外观: 你能帮我解决一下问题吗 HTML代码:
<div id="mceu_107-body" class="mce-container-body mce-abs-layout" >
<div id="mceu_107-absend" class="mce-abs-end"></div>
<div id="mceu_108" class="mce-widget mce-btn mce-primary mce-abs-layout-item mce-first mce-btn-has-text" tabindex="-1" aria-labelledby="mceu_108" role="button">
<button role="presentation" type="button" tabindex="-1" >
<span class="mce-txt">Ok</span></button></div><div id="mceu_109" class="mce-widget mce-btn mce-abs-layout-item mce-last mce-btn-has-text" tabindex="-1" aria-labelledby="mceu_109" role="button">
<button role="presentation" type="button"><span class="mce-txt">Cancel</span></button></div></div>
好啊
取消
如果是弹出窗口,您可能需要等待按钮出现,
看看这个。
希望它有帮助 有两件事:
find\u elements\u by\u css\u selector
而不是find\u elements\u by\u css\u selector
请注意,find_elements将返回一个web元素列表
//span[text()=“Ok']
可能不起作用。此span的父标记是一个按钮,因此单击按钮比单击span更有意义driver.find_element_by_xpath("//span[text()='Ok']/parent::button").click()
既然您已经提到了这一点,它就不存在于iframe中。这段代码应该适合你
希望这会有所帮助。在单击之前和屏幕上出现弹出窗口之前,我有延迟。您能提供HTML代码吗?
@id
值可能是动态的。您是否尝试了另一个选择器,例如XPath/*[.=“Ok”]
?更新为HTML代码,但这还不够。请提供一个HTML块来查看按钮的位置,而不仅仅是按钮本身哦,对不起,我添加了更多HTML代码谢谢!这很有效,但为什么我在button元素上使用css_选择器或xpath并使用find_element_by
?您已经使用了此代码驱动程序。find_elements_by_css_选择器(“#mceu_108>按钮:第n个子项(1)”。单击(),当您使用find_elements
时,您将有一个web元素列表,调用click on list不适用。第二个原因可能是您的定位器,单击按钮比单击span更符合逻辑,希望这能有所帮助