python - 在 Python 3 中为 Selenium 的弹出菜单项查找 CSS 选择器

标签 python html css selenium firefox

我正在尝试为 friend 制作一个 DeviantART Llamabot 作为我使用 Python 3 的第一个 Selenium 元素。除了能够找到“给 llama”按钮之外,我的机器人 99% 都在工作。

问题似乎是按钮出现在下面的菜单是一个弹出窗口,我不能在 Firefox 中右键单击并选择“复制 css 选择器”。一旦我检查了给定菜单的元素,菜单就会关闭并且 html 会发生变化。

我设法截取了代码的随机示例页面的屏幕截图,这样我什至可以看到那里有什么。我尝试自己从头开始学习 CSS 选择器的工作原理,并且设法找到了除列表中的实际元素之外的每个嵌套元素。我试过寻找第 N 个 child 并使用“>”运算符。我尝试按类名、名称、Xpath、链接名、部分链接名搜索,但没有任何效果。

我在其他地方阅读过检查弹出元素的这个问题,建议有效地编写一个 HTML 解析器或其他东西来复制整个 html 代码,然后从你的副本中选择它。我不会为这个元素这样做。除非出于某种原因我绝对必须这样做,否则这完全是太多的工作。

老实说,此时我什至不在乎了,我只是希望有人直接告诉我要输入什么,这样我才能完成这个元素。这是我设法得到的屏幕截图。我正在寻找以蓝色突出显示的元素。

enter image description here

由于我的代码被要求在此处进行说明

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium.webdriver.common.action_chains import ActionChains


binary = FirefoxBinary('C:\Program Files (x86)\Mozilla Firefox\Firefox.exe')
browser = webdriver.Firefox(firefox_binary=binary)

Deviant = browser.get("http://www.deviantart.com/random/deviant")
GiveMenu = browser.find_element_by_css_selector(".i47")
GiveMenu.click()
#GiveLlama = browser.find_element_by_css_selector("")`

除了最后一行之外的所有内容都有效,这就是最后一行被注释掉的原因,直到我弄清楚要放在那里的内容。无论我尝试了什么,包括到目前为止回答这个问题的人提供的例子,我要么得到一个没有这样的元素的错误,要么得到一个非法的语法错误。

最佳答案

您可以使用 xpath 选择器,在 chrome 中您可以使用右键单击并单击复制 > 复制 Xpath,或者在检查器中选择的元素是“div.popup2 .blockmenu a.f.givellama”

关于python - 在 Python 3 中为 Selenium 的弹出菜单项查找 CSS 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41436131/

相关文章:

python - 属性错误 : 'MLPClassifier' object has no attribute 'decision_function'

html - 让<a>标签填充<li>显示: table-cell

java - 如何将外部 HTML 或 CSS 模板应用于 jsp 页面 (NetBeans)

html - CSS - 使图像适合特定大小的 div

html - 背景图像在 ie11 中不可见

python - 是否可以捕获多种类型的异常,然后打印发生的确切类型?

python - 在Python中,DOWNLOAD_DELAY和time.sleep有什么区别?

python - Django 无效 block 标记 : 'static'

javascript - android中用户界面的webview

javascript - 用 Jquery 替换 &lt;script&gt; 标签内 HTML 中的值