在Python上使用Selenium查找元素
我正在尝试在当前幻灯片结束时自动单击大学在线讲座上的“下一步”,因为每当幻灯片结束时,需要用户手动按“下一步” 通过使用selenium和python,我成功地访问了网页,登录并导航到讲座幻灯片本身,但我无法继续前进 正在尝试在第3397行添加元素 我正在尝试获取在Python上使用Selenium查找元素,python,python-3.x,selenium-webdriver,Python,Python 3.x,Selenium Webdriver,我正在尝试在当前幻灯片结束时自动单击大学在线讲座上的“下一步”,因为每当幻灯片结束时,需要用户手动按“下一步” 通过使用selenium和python,我成功地访问了网页,登录并导航到讲座幻灯片本身,但我无法继续前进 正在尝试在第3397行添加元素 我正在尝试获取elapsedTime/totalTime和 while ( currentSlide != totalSlide ) if elapsedTime == totalTime find and click on
elapsedTime/totalTime
和
while ( currentSlide != totalSlide )
if elapsedTime == totalTime
find and click on 'next'
我试过:
duration = driver.find_element(By.XPATH,"//div[@class='label time'][@style='display: none;]")
duration = driver.find_element(By.XPATH,"//div[@class='.label.time'][@style='display: none;']")
任何帮助都将不胜感激
编辑:
Lukas建议它能正常工作
content=urllib.request.urlopen(URL,超时=10.read().decode(“utf-8”)
duration=content.split(“”[1]。split(“”[0]
我会尝试:
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
browser = webdriver.Firefox()
browser.get(URL)
delay = 30 # seconds
WebDriverWait(browser, delay).until(EC.presence_of_element_located((By.CLASS_NAME, 'label time')))
print("Page is ready!")
# duration = browser.find_element_by_class("label time").text
# --> "InvalidSelectorException: Message: invalid selector: Compound class names not permitted"
duration = browser.find_element_by_css_selector(".label.time").text
# alternative:
duration = driver.find_element_by_xpath("//*[@class='label time']").text
您是否尝试使用普通解析器而不是selenium? 看看这个:
content = urllib.request.urlopen(URL, timeout=10).read().decode("utf-8")
duration = content.split("<div class="label time" style="display: none;">")[1].split("</div>")[0]
content=urllib.request.urlopen(URL,超时=10.read().decode(“utf-8”)
持续时间=内容。拆分(“”[1]。拆分(“”[0]
您的方括号不平衡。我会检查一下,如果您给我一个链接,您能上传您的代码吗?很难从这些代码片段中分辨出来。请阅读原因。粘贴HTML并正确格式化。我没有看到任何带有“Next”的元素。您选择的元素(以及您使用的选择器)标记为display:none
,这意味着用户将看不到它,Selenium也不会单击它。您需要发布前后HTML。尝试了之后,现在我得到了InvalidSelectorException:Message:invalidSelector:composite类名不允许
尝试了这两种方法,现在它显示了NoSuchElementException:Message:no这样的元素:无法找到元素:{“method”:“xpath”,“selector”:”//*[@class='label time']“}
不幸的是,无法提供链接,因为访问讲座幻灯片需要用户名和通行证。我尝试在没有链接的情况下为您提供帮助,因此我无法自己测试,但尝试通过css选择器查找元素时,会显示什么消息?