小编vit*_*iis的帖子

如何在 Python 中指定(什么)的方法返回类型列表?

假设我有一个如下所示的方法

def validate(self, item:dict, attrs:dict)-> list:
Run Code Online (Sandbox Code Playgroud)

如果我想更具体地告诉我我的返回类型是一个 ValidationMessages 列表?

我应该如何/我能做到这一点吗?

(我会将标记标记为重复项,因为这与扩展列表或展平无关)我问的是如何更具体地识别方法的返回类型......

python return-type python-3.x

15
推荐指数
1
解决办法
2万
查看次数

CSS :lang() 选择器用于未确定语言的文档中的元素

是否可以定位没有语言设置或继承的元素,即使用未指定(“未知”)语言的元素?

\n

琐事

\n

HTML 文档或元素语言可以使用HTMLlang属性设置,例如:

\n
<html lang="en">\n<h1>Dictionary</h1>\n<dl>\n<dt><abbr lang="en-Mors">-... - .--</abbr>\n<dd><i lang="fr-Latn">\xc3\xa0 propos</i>\n</dl>\n
Run Code Online (Sandbox Code Playgroud)\n

HTTP或在内容语言标头中使用代码:

\n
HTTP/2 200 OK\n[other headers]\nContent-language: en,en-Brai,fr-Latn\n\n<html>\n<h1>Dictionary</h1>\n[rest of document]\n
Run Code Online (Sandbox Code Playgroud)\n

或者它早已被弃用但仍然有效<meta http-equiv>

\n
<html>\n <head>\n  <meta http-equiv="content-language" content="en,en-Brai,fr-Latn">\n</head>\n<html>\n<h1>Dictionary</h1>\n[rest of document]\n
Run Code Online (Sandbox Code Playgroud)\n

在任何一种情况下,使用:lang(en)CSS 选择器都会匹配示例中的主标题以及所有其他没有lang值不等于或以“en”开头的显式属性的元素。

\n

目标

\n

如果发送的文档没有 Content-languageHTTP 标头或<meta>元素且没有 lang属性,是否可以匹配那些不可避免的“未知”语言的元素?

\n

另外,在通过任何上述方式设置语言的文档或 DOM 片段中,是否可以使用lang()CSS 选择器来匹配具有空属性的lang=""元素,从而有效地“选择退出”语言?

\n
HTTP/2 200 OK\n[no content-language header nor meta …
Run Code Online (Sandbox Code Playgroud)

css

5
推荐指数
1
解决办法
995
查看次数

使用 Python Selenium 查找 span 标签的同级/父级

这是我的第一个问题,所以如果我错过了一些信息或做错了什么,我已经为此道歉。我正在使用 ChromeDriver 来浏览互联网。使用的语言是Python与Selenium的结合。

我有一个元素,它是一个跨度标签,我将其存储在名为elem的变量中。我可以找到elem的父元素

articles.append(elem.find_parent("a")['href'])
Run Code Online (Sandbox Code Playgroud)

它存储在该数组articles中。现在我需要找到祖先元素,它是带有“price”类的 span 标签:最低行代表elem,第二行是我正在寻找的元素。

但是,尝试像以前一样:

elem.find_parent("span")['class']
Run Code Online (Sandbox Code Playgroud)

对我来说不起作用,我收到一个 Nonetype 错误。我尝试了多种其他方法,但总是出现 NoneType 错误。

先感谢您。

python selenium xpath selenium-chromedriver selenium-webdriver

3
推荐指数
1
解决办法
4779
查看次数

Python Selenium元素点击拦截

我试图让 Selenium 单击一个链接,但它给出了一个错误,提示“单击被拦截”。

该代码确实工作过一次并加载了正确的网页,但从那以后我就再也没有让它工作过。Selenium 确实找到了要单击的链接,但它不想使用它并返回错误。

错误代码:

Enter Anime:One Piece
Search All - MyAnimeList.net
Traceback (most recent call last):
  File "C:\Users\amete\Documents\Python\Code\Web test.py", line 29, in <module>
    link = driver.find_element_by_xpath("/html/body/div[2]/div[2]/div[3]/div[2]/div[2]/div[1]/div/article[1]/div[1]/div[2]/a[1]").click()
  File "C:\Users\amete\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
    self._execute(Command.CLICK_ELEMENT)
  File "C:\Users\amete\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
    return self._parent.execute(command, params)
  File "C:\Users\amete\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Users\amete\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <a href="https://myanimelist.net/anime/21/One_Piece" class="hoverinfo_trigger fw-b fl-l" id="#revAreaAnimeHover21" rel="#revInfo21" style="position: relative;">...</a> is not clickable at …
Run Code Online (Sandbox Code Playgroud)

python selenium xpath web-scraping selenium-webdriver

2
推荐指数
1
解决办法
2526
查看次数

在 ExecutorService 中没有得到想要的结果

为什么我在下面的代码中没有将 list1 和 list2 的列表大小设置为 1000:

https://pastebin.com/ttcbkjqR

我的主要方法代码如下:

    ExecutorService executor = Executors.newFixedThreadPool(2);

    for(int j=0; j<2; j++) {
        executor.submit(new Worker(j));
    }

    executor.shutdown();
    System.out.println("All tasks submitted: ");

    try {
        executor.awaitTermination(1, TimeUnit.DAYS);
    } catch (InterruptedException e) {

    }
    long end = System.currentTimeMillis();
    System.out.println("Time taken: " + (end - start));
    System.out.println("List1: " + list1.size() + "; List2: " + list2.size());
Run Code Online (Sandbox Code Playgroud)

在这里Worker上课:

class Worker implements Runnable{
    private int id;
    
    public Worker(int id) {
        this.id = id;
    }

    private Random random = new Random(); …
Run Code Online (Sandbox Code Playgroud)

java multithreading executorservice

0
推荐指数
1
解决办法
57
查看次数