Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python上使用Selenium查找元素_Python_Python 3.x_Selenium Webdriver - Fatal编程技术网

在Python上使用Selenium查找元素

在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

我正在尝试在当前幻灯片结束时自动单击大学在线讲座上的“下一步”,因为每当幻灯片结束时,需要用户手动按“下一步”

通过使用selenium和python,我成功地访问了网页,登录并导航到讲座幻灯片本身,但我无法继续前进

正在尝试在第3397行添加元素

我正在尝试获取
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选择器查找元素时,会显示什么消息?